5

我不明白文档对此有何评论。

默认情况下,HttpURLConnection 的这个实现请求服务器使用 gzip 压缩。由于 getContentLength() 返回传输的字节数,因此您无法使用该方法预测可以从 getInputStream() 读取多少字节。相反,读取该流直到它耗尽:当 read() 返回 -1 时。可以通过在请求标头中设置可接受的编码来禁用 Gzip 压缩:

urlConnection.setRequestProperty("Accept-Encoding", "identity");

我想知道当前实现是否在返回流之前实际解压缩流(使用 conn.getInputStream()),或者它是否只是说连接自动发送用于 gzip 编码的标头,我需要对此进行管理。

谢谢。

4

1 回答 1

11

你不需要处理这个。只需使用 conn.getInputStream()

这篇博文:

在 Gingerbread 中,我们添加了透明响应压缩。HttpURLConnection 会自动将此标头添加到传出请求中,并处理相应的响应:

接受编码:gzip

于 2013-05-08T13:58:58.983 回答