Android HttpURLConnection及HttpClient选择
- - Trinea介绍Android中Http请求方式的选择、区别及几个常用框架对API的选择. Android Http请求API主要分两种:. 第一种是Java的HttpURLConnection,默认带gzip压缩. 第二种Apache的HttpClient,默认不带gzip压缩. 两种方式请求connection都是keep alive,默认User-Agent不同.
介绍Android中Http请求方式的选择、区别及几个常用框架对API的选择
1. 两种请求方式对比
Android Http请求API主要分两种:
第一种是Java的HttpURLConnection,默认带gzip压缩
第二种Apache的HttpClient,默认不带gzip压缩
两种方式请求connection都是keep alive,默认User-Agent不同。
关于两种方式发出去的请求头对比图如下:
上图是通过抓包抓包的,具体如何抓包可参考: Android利用Fiddler进行网络数据抓包
测试代码见: android-http-api-compare@github, 测试APK见: http-api-compare.apk
2. 常用Http框架对Http API的选择
Retrofit及Volley框架默认在Android API 9及以上都是用HttpURLConnection,9以下用HttpClient。
这样我们也能看出就算我们自己不使用框架对这两个API的选择了.
3. GZip压缩
一般对于API请求需带上GZip压缩,因为API返回数据大都是JSon串之类字符串,GZip压缩后内容大小大幅降低,下面是这两个网页GZip压缩前后对比,都是第一条表示GZip压缩后,第二条为压缩前
更多关于网络请求优化请参考: Android性能优化第四部分网络的介绍