Android 第2步:使用拦截器在查询参数中添加访问令牌
我正试图用这个函数向每个请求添加查询参数(访问令牌) 问题在于拦截器,它将在ServiceGenerator创建的每个请求中累积:Android 第2步:使用拦截器在查询参数中添加访问令牌,android,access-token,interceptor,retrofit2,okhttp3,Android,Access Token,Interceptor,Retrofit2,Okhttp3,我正试图用这个函数向每个请求添加查询参数(访问令牌) 问题在于拦截器,它将在ServiceGenerator创建的每个请求中累积: httpClient.addInterceptor(new Interceptor() { 由于httpClient是静态的,所有拦截器都将在不需要它的请求中执行 我应该为普通请求创建自己的OKHttpClient,为令牌请求创建自己的OKHttpClient吗?我应该只初始化一次拦截器和验证器,然后使用ServiceGenerator吗?或者有更好的方法吗?我认
httpClient.addInterceptor(new Interceptor() {
由于httpClient是静态的,所有拦截器都将在不需要它的请求中执行
我应该为普通请求创建自己的OKHttpClient,为令牌请求创建自己的OKHttpClient吗?我应该只初始化一次拦截器和验证器,然后使用ServiceGenerator吗?或者有更好的方法吗?我认为添加访问令牌作为查询参数不是一个好主意 更好的方法是将其添加到自定义标题中,如下所示:
okHttpClient = new OkHttpClient.Builder()
.cache(setCache(context))
.certificatePinner(certificatePinnerBuilder.build())
.retryOnConnectionFailure(false)
.readTimeout(READ_TIMEOUT, TimeUnit.MILLISECONDS)
.connectTimeout(CONNECTION_TIMEOUT, TimeUnit.MILLISECONDS)
.addInterceptor(new Interceptor() {
@Override
public okhttp3.Response intercept(Chain chain) throws IOException {
Request original = chain.request();
Request request = original.newBuilder()
.header("Content-type", "application/json")
.header("AUTH_TOKEN", token)
.method(original.method(), original.body())
.build();
return chain.proceed(request);
}
})
.addInterceptor(logger)
.build();
但是,您可以点击以下链接:
您可以在改装请求中创建几个客户端或添加头文件作为头文件