Retrofit2自定义拦截器无法在SDK 25及更高版本中运行

时间:2017-10-28 20:49:56

标签: android retrofit2

我有一个OkHttpInterceptor,它拦截了应用程序在请求标头中追加token的每个请求。

private OkHttpClient getOKHttpClient() {
    return new OkHttpClient().newBuilder().addInterceptor(new Interceptor() {
        @Override
        public Response intercept(Chain chain) throws IOException {
            Request originalRequest = chain.request();

            Request.Builder builder = originalRequest.newBuilder().header("x-access-token", getNewTokenPassively());
            Request newRequest = builder.build();
            return chain.proceed(newRequest);
         }
    }).build();
}

我正在使用此方法添加拦截器

....
return new Retrofit.Builder()
                .baseUrl(baseUrl)
                .addConverterFactory(GsonConverterFactory.create())
                .client(getOKHttpClient())
                .build();
....

这在SDK 25及更高版本中不起作用,其中任何http调用call.enqueue方法都不起作用且API调用永远不会通过......

如果我用.client(getOKHttpClient())替换.client(newOkHttpClient.Builder().build()),一切正常。

我错过了一些明显的东西吗?

0 个答案:

没有答案