java - 如何使用 okhttp 删除 header "accept-encoding:gzip"

标签 java android okhttp

我正在使用 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/

相关文章:

Android simplexml.jar混淆问题

android - CameraX - 取消绑定(bind)预览用例时崩溃

java - 如何阻止 JSplitPanes 跳转到其默认位置

android - 一次性权限导致后台计划作业和警报被取消

android - 如何在 Android 的 OKHTTP 3.x 中动态(或循环)发送 post 参数?

java - OkHttp - 检测图像下载超时

android - OkHttp 拦截器不断返回 null 并使应用程序崩溃

java - 如何配置 Maven2 发布到 Artifactory?

java - 下载完成后自动打开文件PDF

具有更好输入功能的 JavaFX DatePicker