gpt4 book ai didi

android - Retrofit2:使用拦截器在查询参数中添加访问 token

转载 作者:行者123 更新时间:2023-11-29 19:33:28 27 4
gpt4 key购买 nike

我正在尝试使用此 tutorial 向每个请求添加查询参数(访问 token )

问题在于拦截器,它会在 ServiceGenerator 创建的每个请求中累积:

httpClient.addInterceptor(new Interceptor() {

另外由于 httpClient 是静态的,所有拦截器都会在不需要的请求中执行。

我应该为正常请求创建自己的 OkHttpClients 并为 token 请求创建自己的 OkHttpClients 吗?我应该只初始化拦截器和验证器一次然后使用 ServiceGenerator 吗?还是有更好的方法?

最佳答案

我认为将访问 token 添加为查询参数不是一个好主意。

更好的方法是像这样将它添加到自定义 header 中:

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();

但是,您可以点击此链接:

https://futurestud.io/tutorials/retrofit-2-how-to-add-query-parameters-to-every-request

关于android - Retrofit2:使用拦截器在查询参数中添加访问 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39572283/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com