[原]Android HttpURLConnection Accept-Encoding: gzip 版本问题

标签: | 发表时间:2014-03-26 14:45 | 作者:bob007abc
出处:http://blog.csdn.net/bob007abc

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版本无关。


作者:bob007abc 发表于2014-3-26 14:45:51 原文链接
阅读:6 评论:0 查看评论

相关 [android httpurlconnection accept] 推荐:

[原]Android HttpURLConnection Accept-Encoding: gzip 版本问题

- - bob007abc的专栏
Android 官方文档对 HttpURLConnection 的 Performance 的描述有一段:. 参见: http://developer.android.com/reference/java/net/HttpURLConnection.html. 就是说 使用HttpURLConnection发请求时,默认的request hearder里会加上 Accept-Encoding: gzip.

Android HttpURLConnection及HttpClient选择

- - Trinea
介绍Android中Http请求方式的选择、区别及几个常用框架对API的选择. Android Http请求API主要分两种:. 第一种是Java的HttpURLConnection,默认带gzip压缩. 第二种Apache的HttpClient,默认不带gzip压缩. 两种方式请求connection都是keep alive,默认User-Agent不同.

[译]Android访问网络,使用HttpURLConnection还是HttpClient?

- - 郭霖的专栏
转载请注明出处: http://blog.csdn.net/guolin_blog/article/details/12452307. 最近在研究Volley框架的源码,发现它在HTTP请求的使用上比较有意思,在Android 2.3及以上版本,使用的是HttpURLConnection,而在Android 2.2及以下版本,使用的是HttpClient.

EPOLL下的accept(转载)

- chuang - C++博客-首页原创精华区
     摘要: (转载者注:看完这个,再回头看看nginx源码,发现它在accept时用的是LT模式,read,write时是ET模式)不知道是谁第一个犯了错,在网上贴出所谓epoll通用框架的代码. 注意看accpet的处理:1epfd = epoll_create(10);2 3struct sockaddr_in clientaddr;4struct sockaddr_in se...  阅读全文.

HttpURLConnection实现断点下载

- - Web前端 - ITeye博客
int code = con.getResponseCode();//只要断点下载,返回的已经不是200,206. System.err.println("服务器返回的长度:"+serverSize);. System.err.println("这次从哪开开始写:"+size);.

HttpUrlconnection 、Httpclient get 、post 请求核心代码

- - CSDN博客推荐文章
HttpURLConnection的使用  . * URL请求的类别分为二类,GET与POST请求. * a:) get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet, . * b:) post与get的不同之处在于post的参数不是放在URL字串里面,而是放在http请求的正文内.

HTTPURLConnection中接收流被截断的问题

- - 脚本爱好者
在Java中使用HTTPURLConnection遇到了一个很诡异的问题,接收返回的数据流总是被截断,方法如下:. 在网上也查了很多资料,最后发现是因为数据流的返回是异步的,也就是说不能一次性把包都收完,比如按照如下方法:. 当然有时候也要处理GZIP解压问题,代码如下:.

简单使用URLConnection、HttpURLConnection和HttpClient访问网络资源

- - CSDN博客移动开发推荐文章
URL的openConnection方法将返回一个URLConnection,该对象表示应用程序和URL之间的通信连接. 程序可以通过它的实例向该URL发送请求,读取URL引用的资源. 下面通过一个简单示例来演示:. // 直接使用URLConnection对象进行连接. // 得到URLConnection对象.

Android 遥控车

- CasparZ - LinuxTOY
您确定您真的会用 Android 手机玩赛车. 16 岁的法国学生 Jonathan Rico 使用 Android 手机通过蓝牙实现了对改装玩具汽车的遥控. 操控的方式和那些标榜的智能手机游戏一样,使用重力感应,差别是这次控制的是现实世界中的遥控汽车. 收藏到 del.icio.us |.

Android免费?毛

- Ruby - FeedzShare
来自: 36氪 - FeedzShare  . 发布时间:2011年08月17日,  已有 2 人推荐. 微软CEO Steve Ballmer在预测竞争对手产品时通常口无遮拦. 比如他去年抨击Google的Android战略时,很多人都不屑一顾. 接着Android蚕食了微软的地盘,后来又开始侵犯苹果的地盘.