【发布时间】:2017-05-21 17:28:40
【问题描述】:
我在获取经过身份验证的用户时遇到问题。在它之前,我得到了令牌和用户 ID。现在我需要使用访问令牌和 ID 从服务器获取用户。 I have header format
现在我正在尝试使用拦截器添加带有用户令牌和 id 的标头。
我的代码:
Interceptor interceptor = new Interceptor() {
@Override
public okhttp3.Response intercept(Chain chain) throws IOException {
Request newRequest = chain.request().newBuilder()
.addHeader("Accept", "application/json")
.addHeader("authorization", token) <-??
.addHeader("driver_id", id) <-??
.build();
return chain.proceed(newRequest);
}
};
OkHttpClient.Builder okHttpBuilder = new OkHttpClient.Builder();
okHttpBuilder.addInterceptor(interceptor);
OkHttpClient okHttpClient = okHttpBuilder.build();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.client(okHttpClient)
.build();
界面:
@GET("driver/v1/driver")
Call<Driver> getAuthorizedDriver();
不同的变种抛出401错误,不知道怎么办 日志:
I/Response code: 401
I/Response message: Unauthorized`
【问题讨论】:
-
您尝试在@GET 上方使用@Headers("token:" + TOKEN) 吗?
-
我总是需要新的令牌值。谢谢
-
另一种方法是通过 getAuthorizedDriver() 传递令牌和 id
标签: java android retrofit retrofit2 okhttp