我正在尝试使用带有令牌身份验证的请求,它第一次运行得非常好,但是第二次尝试我得到401服务器错误,即使我硬着令牌我得到了相同的响应即im addind空格,但相同的代码用于第一个工作正常的请求,第二个请求返回401错误,这是我的服务代码:
public static <S> S createService(Class<S> serviceClass, final String authToken) {
Interceptor interceptor = new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Request newRequest = chain.request().newBuilder()
.addHeader("Authorization", "Token " + authToken)
.build();
return chain.proceed(newRequest);
}
};
HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
logging.setLevel(Level.BODY);
httpClient.interceptors().add(logging);
httpClient.interceptors().add(interceptor);
Retrofit retrofit = builder.client(httpClient).build();
return retrofit.create(serviceClass);
}
我的服务器需要接收,Token&amp; $&amp;%$&amp; TGDHGDHFD3456436EXAMPLETOKEN作为标题,我不认为问题是在代码的另一个地方,因为即使我硬核令牌我得到同样的问题
答案 0 :(得分:0)
您可以将授权作为参数发送到界面中的每个请求中。当您从使用基本Auth转移到OAuth2时,它会对您有所帮助。
public interface createContact {
@GET(Constants.RETROFIT_CONTACTS_PATH)
@Headers("Content-Type: application/json")
Call<ArrayList<ProductsModel>> createContacts(@Header("Authorization") String user);
}