OkHttp启用/禁用请求的gzip压缩

Fav*_*las 6 java android retrofit okhttp retrofit2

我正在使用Retrofit管理我的请求,并希望使用或不使用gzip进行一些测试来检查请求大小.

默认情况下会对OkHttp请求执行gzip压缩,还是必须使用拦截器实现?

我已经添加

@Headers({
        "Accept-Encoding: gzip, deflate",
        "Content-Encoding: gzip"
})
Run Code Online (Sandbox Code Playgroud)

要么:

@Headers({
        "Content-Type: application/json;charset=utf-8",
        "Accept: application/json"
})
Run Code Online (Sandbox Code Playgroud)

对我的要求,并没有看到请求长度的任何变化.

Jes*_*son 10

OkHttp将在响应主体上执行透明gzip,除非您使用此标头禁用该功能:

Accept-Encoding: identity
Run Code Online (Sandbox Code Playgroud)

  • ...并且请求正文没有压缩.为此你需要这个:https://github.com/square/okhttp/blob/master/samples/guide/src/main/java/okhttp3/recipes/RequestBodyCompression.java (5认同)