2013-05-08 36 views
5

我无法理解文档对此所说的。Android HttpURLConnection:gzip压缩

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

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

我想知道如果当前的实现返回它(使用conn.getInputStream())之前实际解压缩流,或者如果它只是说连接会自动发送gzip编码头,我需要用它来管理。

谢谢。

回答

11

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

this从博客帖子:

在姜饼,我们添加透明响应压缩。 HttpURLConnection的将这个头自动添加到传出的请求,并办理相应的响应:

接受编码:gzip

+1

来源:Android开发者博客 - Android的HTTP客户端(HTTP:// Android的开发者。 blogspot.com/2011/09/androids-http-clients.html) – Czechnology 2013-07-26 00:14:35