最近的两个项目里面,我都是负责android手机端与internet服务器连接的功能模块的代码,在查阅书籍的时候看到通过http连接有两套代码,一套是用HttpURLConnection,另一套是用HttpClient,两套代码的功能完全不同。刚开始总是搞不懂,于是在网上搜到一下资料。
以下转自:http://hi.baidu.com/gengshenspirit/blog/item/21c7d236952933380b55a94f
HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP协议来访问网络资源。虽然在 JDK 的 java.net 包中已经提供了访问 HTTP协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。
HttpURLConnection是java的标准类
HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。HttpClient 已经应用在很多的项目中,比如Apache Jakarta 上很著名的另外两个开源项目 Cactus 和 HTMLUnit 都使用了 HttpClient,更多使用HttpClient 的应用可以参见http://wiki.apache.org/jakarta-httpclient/HttpClientPowered。HttpClient项目非常活跃,使用的人还是非常多的。目前 HttpClient 版本是在 2005.10.11 发布的 3.0 RC4 。
HttpClient是个很不错的开源框架,封装了访问http的请求头,参数,内容体,响应等等,
HttpURLConnection是java的标准类,什么都没封装,用起来太原始,不方便,比如重访问的自定义,以及一些高级功能等。
推荐HttpClient!!
还有个也不错,httpunit
上面讲的内容比较简单易懂,下面还有在另外一个网站找到的资料,比较详细,不过涉及到太多与项目无关的东西,等以后需要深入了解再看
图片转自http://www.innovation.ch/java/HTTPClient/urlcon_vs_httpclient.html