关于网络操作一般都会介绍HttpClient以及HttpConnection这两个包。前者是apache的开源库,后者是android自带的api。既然提到了他们,对二者进行一个比较,谷歌在官方文档已经说明了,建议在2.3以及以上版本使用HttpConnection。具体原因呢,是因为对2.1和2.2版本,HttpURLConnection有那么几个Bug,所以建议用Apache的HTTP Client;之后的版本,建议用HttpURLConnection。Apache的HTTP Client比较强大,拥有庞大而灵活的API,这个实现很稳定,并且Bug很少。然而,也就是因为太庞大了,以至于很难在保证兼容性的情况下改进它,故android 开发团队不应该维护该库而是转投更为轻量级的httpurlconnection。
当我们开发企业级应用的时候,一般都会选择使用已经封装好的http框架。开源的比较流行的有:
1、volley
2、android-async-http
3、retrofit
4、okhttp
5、androidquery
6、
AndroidAsync
等。他们各有优劣,不同的框架有不同的效率,在使用的时候可以因地制宜地测试,根据效果来选择使用哪个,之前个人则比较喜欢用android-async-http,。如今Google推出了官方的针对Android平台上的网络通信库volley,能使网络通信更快,更简单,更健壮,Volley在提供了高性能网络通讯功能的同时,对网络图片加载也提供了良好的支持,完全可以满足简单REST客户端的需求, 我们没有理由不跟上时代的潮流。另外,但volley的扩展性很强,可以根据需要定制你自己的网络请求。所以,最后推荐还是使用volley进行开发,当然其他几个库也是非常具有学习以及参考意义的,可以将他们的精髓之处汲取到volley框架的拓展开发之中,做出自己理想的http通讯框架。
随着安卓不断的研究学习,现在okhttp+retrofit的网络开发逐渐开始流行,前面也有一篇博文介绍retrofit,具体也在深深的研究当中。