Android 官方文档对 HttpURLConnection 的 Performance 的描述有一段:

By default, this implementation of HttpURLConnection requests that servers use gzip compression

参见: http://developer.android.com/reference/java/net/HttpURLConnection.html

就是说 使用HttpURLConnection发请求时,默认的request hearder里会加上 Accept-Encoding: gzip

这是坑!!!

因为Android的这个Feature是在Gingerbread(android 2.3.3) 版本以后才加上的, 而这一点并未在其官方API中注明。

所以同样的应用,在低版本的android上,发出的是非gzip的请求,而在高版本的android上发出的是gzip的请求,这样在server端处理时,就要特别小心兼容两类情况。

(我们因此出了一个大bug。)

下面是另外一篇文章中提到的:

In Gingerbread, we added transparent response compression. HttpURLConnection will automatically add this header to outgoing requests,and handle the corresponding response:Accept-Encoding: gzip
参见: http://android-developers.blogspot.com/2011/09/androids-http-clients.html


如果不想处理这些问题,也可以弃用 HttpURLConnection 而改用 Apache Http Client, 它发送的都是非gzip类型的请求,与android版本无关。


更多相关文章

  1. android 版本跟新之打开下载好的
  2. 获取当前应用的版本号/应用名称
  3. android各版本的兼容问题
  4. Android 5.0低版本出现Error inflating class
  5. Android版本更新(Service下载 Notification进度条)
  6. Android开源项目分类汇总【老外汇总版本】
  7. Android自适应不同版本的程序退出方法
  8. 应用内版本更新库UpdateVersion

随机推荐

  1. Android 中的拿来主义(编译,反编译,AXMLPri
  2. Android:使用pagerslidingtabstrip做Tab
  3. android bionic移植需要注意的事项
  4. android XMPP
  5. android sqlite相关
  6. android获取当前正在运行的栈顶的应用包
  7. Android开源项目分类汇总(六)工具库
  8. Android(安卓)-- Activity值传递
  9. 【Android测试工具】03. ApkTool在Mac上
  10. Android的HttpURLConnection