HttpURLConnection、HttpClient
I. HttpClient
具体实现:
DefaultHttpClient
、AndroidHtppClient
特点:
API数量繁多,官方升级维护较少
II. HttpURLConnection
特点:
多用途、轻量。API简单,易于使用、拓展。
坑点:
Android 2.2以前: 可读的InputStream调用close时,可能导致连接池失效(通常解决方法禁用连接池功能)。
迭代亮点:
Andorid 2.3
- 默认请求接受gzip。
- 后会使用SNI(Server Name Indication)
- 断线重连
Android 4.0
- 响应缓存机制(
HttpResponseCache#install
):
- 都由本地提供的响应,没有必要发起网络连接的请求,都直接从本地缓存直接取得
- 视情况而定的缓存响应,由服务器确定(304 Not Modified代表不需要更新,就不会下载任何数据,将直接用本地缓存);
- 没有缓存的响应,都由服务器直接下载。
III. 选择
推荐Android 2.2以前使用HttpClient
,由于Android 2.2以前的HttpURLConnection
存在坑点,而相比而言HttpClient
在Android 2.2以前比较稳定。
HttpURLConnection、HttpClient
https://blog.dreamtobe.cn/2015/10/31/android_http/