Android HttpURLConnection:gzip压缩

5
我不理解文档对此的说明。
默认情况下,HttpURLConnection 的实现会请求服务器使用 gzip 压缩。由于 getContentLength() 方法返回传输的字节数,因此您不能使用该方法来预测可以从 getInputStream() 中读取多少字节。相反,一直读取该流直到耗尽为止:当 read() 返回 -1 时。可以通过在请求头中设置可接受的编码方式来禁用 Gzip 压缩。
urlConnection.setRequestProperty("Accept-Encoding", "identity");

我想知道当前实现是否在返回流之前解压缩它(使用conn.getInputStream()),或者它只是说连接自动发送gzip编码的头文件,我需要处理它。
谢谢。
1个回答

12

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

来自这篇博客文章:

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

Accept-Encoding: gzip



网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接