【发布时间】:2021-03-08 06:43:38
【问题描述】:
我正在使用使用令牌进行授权调用。首先,用户在登录后获得一个令牌,我将该令牌存储在共享首选项中,并将该令牌(存储为字符串)作为标头传递给使用 okhttp 作为客户端的改造 api 调用。现在收到此错误。如何编码标头/令牌或删除此错误。 [令牌我从API获取例如: “Du_jwJP64Znbwc1EvyJMEkw9HHwIZPjYnXgchiq5e2Tf24y9vNBrD6PJX8jTMj7qGDQyxTDBW8XrlwSRBjNQ-Tzzafq7r3jS5x9ZsXJgU9JgDi8ZNmwf_JD47aTRUKEhX5KtZ52oOeiuOnjO9XKCKT2g1vLpmcpUxvOi36R6ySNoMBmWzn7KmG6_vZzhfT0YhhfIW8x6vPEHmDLvBIIWbBDry0qpoiZNkgkI2D6CkFqQN1Hy-fMc3tFX7Y-VPRBF6bXQOHbsDAPkSqFfVxMQaw”] API服务接口:
@FormUrlEncoded @Multipart @POST("api/user/info") @Headers({"Content-Type:application/json"}) Call
<QRcodeResponse> getUserinfo(@Header("Authorization") String Auth);
java.lang.IllegalArgumentException: Unexpected char 0x20 at 12 in header name: Content-Type
at okhttp3.Headers$Builder.checkNameAndValue(Headers.java:330)
at okhttp3.Headers$Builder.add(Headers.java:288)
at retrofit2.ServiceMethod$Builder.parseHeaders(ServiceMethod.java:329)
at retrofit2.ServiceMethod$Builder.parseMethodAnnotation(ServiceMethod.java:270)
at retrofit2.ServiceMethod$Builder.build(ServiceMethod.java:175)
at retrofit2.Retrofit.loadServiceMethod(Retrofit.java:170)
at retrofit2.Retrofit$1.invoke(Retrofit.java:147)
at java.lang.reflect.Proxy.invoke(Proxy.java:1006)
at $Proxy0.getUserinfo(Unknown Source)
at com.example.two_locally.sign_in.updateContent(sign_in.java:209)
at com.example.two_locally.sign_in.access$000(sign_in.java:45)
at com.example.two_locally.sign_in$3.onResponse(sign_in.java:160)
at retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.run(ExecutorCallAdapterFactory.java:70)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:227)
at android.app.ActivityThread.main(ActivityThread.java:7822)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1026)
【问题讨论】: