如何在 Retrofit 中关闭默认压缩?

How to turn off default compression in Retrofit?

我正在使用 Retrofit 进行 HTTP 调用。但似乎图书馆默认压缩(gzip)请求。由于 API 无法处理压缩请求,有没有办法关闭默认压缩?

Retrofit 不进行压缩。事实上,它几乎不涉及 HTTP,因为它只是将艰苦的工作委托给真正的 HTTP 客户端。

也就是说,我猜你说的是 OkHttp,但 OkHttp 默认情况下也不进行压缩。添加请求 body 压缩是 one of the examples 我们提供的。由于大多数网络服务器默认不支持它,因此默认情况下不启用它。

OkHttp 会自动在请求中添加 Accept-Encoding: gzip header。这向服务器表明 OkHttp 可以读取 Gzip 响应主体。如果服务器选择发送 Gzipped 响应 body(不必如此),它将透明地 un-Gzipped 在返回给应用程序代码之前。