我正在使用 OkHttp 3 并尝试从 OkHttpClient
发出的请求中完全删除 accept-encoding
header 。
我在 Request
对象上使用 .removeHeader("accept-encoding")
,但 header 仍然出现在请求中。
有没有办法完全删除 header ,而不仅仅是用不同的值替换它?
最佳答案
您可以使用网络拦截器将其删除。
final class AcceptEncodingInterceptor implements Interceptor {
@Override public Response intercept(Interceptor.Chain chain) throws IOException {
Request request = chain.request();
.newBuilder()
.removeHeader("Accept-Encoding")
.build();
return chain.proceed(request);
}
}
拦截器是这样的:
new OkHttpClient.Builder()
...
.addNetworkInterceptor(new AcceptEncodingInterceptor())
.build();
请注意,必须是 addNetworkInterceptor
,简单地 addNetworkInterceptor
不起作用。
关于java - 如何使用 okhttp 删除 header "accept-encoding:gzip",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60976886/