【发布时间】:2019-12-25 06:32:20
【问题描述】:
在我的应用程序中,我想从服务器获取一些数据,为此我使用了 retrofit。
我应该添加一些 Headers 但运行应用程序后显示 ForceClose 错误!
ApiServices 代码:
interface ApiServices {
@Headers(
"Accept: application/json",
"Content-Type : application/json"
)
@POST("user/get-password")
fun sendPhoneNumber(@Body body: LoginSendPhoneBody): Single<Response<LoginSendPhoneResponse>>
@Headers(
"Accept: application/json",
"Content-Type : application/json"
)
@POST("addresses")
fun newAddress(@Header("Authorization") userToken: String, @Body body: NewAddressBody):
Single<Response<NewAddressResponse>>
}
我的 Retrofit 版本是 2.5.0 !
在 retrofit 文档中,我为设置多个 header 我应该使用 {} 到 Headers 例如 @Headers({...}) ,但在添加之后{} 显示错误,我无法使用 {}!
Logcat 错误:
java.lang.IllegalArgumentException: Unexpected char 0x20 at 12 in header name: Content-Type
at okhttp3.Headers.checkName(Headers.java:261)
at okhttp3.Headers$Builder.add(Headers.java:311)
at retrofit2.RequestFactory$Builder.parseHeaders(RequestFactory.java:283)
at retrofit2.RequestFactory$Builder.parseMethodAnnotation(RequestFactory.java:224)
at retrofit2.RequestFactory$Builder.build(RequestFactory.java:161)
at retrofit2.RequestFactory.parseAnnotations(RequestFactory.java:65)
at retrofit2.ServiceMethod.parseAnnotations(ServiceMethod.java:25)
at retrofit2.Retrofit.loadServiceMethod(Retrofit.java:168)
at retrofit2.Retrofit$1.invoke(Retrofit.java:147)
at java.lang.reflect.Proxy.invoke(Proxy.java:913)
at $Proxy2.sendPhoneNumber(Unknown Source)
at com.app.app.data.network.ApiUseCase.getSendPhoneNumber(ApiUseCase.kt:42)
我该如何解决?
【问题讨论】:
-
这可能很愚蠢,但是 logcat 抱怨字符 #12,它(取决于您开始阅读它的位置)恰好是“Content-Type”和“:”符号之间的空格。试试“Content-Type:”而不是“Content-Type:”
-
@TooManyEduardos, ohhh yeees :D 我应该使用 Content-Type: 。谢谢亲爱的
标签: android kotlin retrofit retrofit2