令牌只能工作一次Retrofit2

时间:2015-11-30 18:10:56

标签: java authentication android-studio token retrofit

我正在尝试使用带有令牌身份验证的请求,它第一次运行得非常好,但是第二次尝试我得到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作为标题,我不认为问题是在代码的另一个地方,因为即使我硬核令牌我得到同样的问题

1 个答案:

答案 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);
    }