Kyl*_*ler 5 android gzip httpurlconnection
我正在尝试在Gingerbread + Android设备上使用HttpURLConnection,并且遇到gzip编码问题.根据文件
"在Gingerbread中,我们添加了透明的响应压缩.HttpURLConnection会自动将此标头添加到传出请求中,并处理相应的响应:
Accept-Encoding:gzip"
问题是这实际上并没有发生.Accept-Encoding:gzip标头根本没有添加.如果我手动添加它,我会期望它的解压缩部分通过connection.openInputStream()来自动返回GZipInputStream,但它只返回一个普通的InputStream.
有没有人经历过这个?我没有看到任何这种情况发生的帖子,所以很奇怪.该项目是针对API 17编译的,因此不应该是一个问题,设备运行4.3.
谢谢.
idr*_*sid 11
我有同样的问题,它与HTTPS有关.如果你打电话:
URL url = new URL("https://www.example.com");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
Run Code Online (Sandbox Code Playgroud)
你实际上得到一个HttpsURLConnection(HttpURLConnection的子类)的实例,它不会自动处理gzip.在这些情况下,您可以:
conn.setRequestProperty("Accept-Encoding", "gzip");
...
InputStream inStream = new GZIPInputStream(conn.getInputStream());
Run Code Online (Sandbox Code Playgroud)
我用我的一些设备进行了测试,并且 HttpURLConnection 正在添加Accept-Encoding: gzip到标头中。
您是否尝试过为 Android 设备配置 Fiddler来验证 http 标头?也许您的服务器不支持压缩。
| 归档时间: |
|
| 查看次数: |
8451 次 |
| 最近记录: |