HttpClient
介绍
在今,文本传送协议可能是在互联网应用的协议中最为重要的一个协议了。Web services、网络功能应用继续扩展着HTTP协议在web浏览器用户和设备之间的角色,同时也带来了需要支持HTTP协议的应用也在增长。
虽然java.net这个包中提供了一些通过HTTP获取资源的基本功能,但是它不能够充分地满足很多应用在灵活性或功能上的要求。Jakarta工程的HttpClient组件意在填补这一空白,提供一种高效的、最新的,且功能丰富的套件的客户端,并且实现最新的HTTP标准和建议。想看更多的关于标准和性能的细节,可以点击这里。
为了推广,同时提供强有力的支持基础的HTTP协议,利用 HttpClient组件可以使任何感兴趣的人建立的HTTP已知客户端应用程序,如Web浏览器, Web服务客户端,或为分布式通信利用或扩展HTTP协议的系统。
有很多的项目用HttpClient提供HTTP的核心功能。其中有一些是以项目页面方式开源的,你可以找到这些web站点,同时也有一些已经关闭源代码你可能在也看不到或是听不到他们了。请参阅这里使用了HttpClient应用的项目。
http://hc.apache.org/downloads.cgi
功能介绍
· 1 基于标准的,纯java的实现了HTTP1.0和1.1.
· 2 实现了所有HTTP方法包括GET,POST,DELETE,HEAD,OPTIONS,和TRACE。
· 3 支持HTTPS。(HTTP over SSL)协议。
· 4 保持了非标准配置和
· 5 支持代理。
· 6 使用CONNECT方法,利用HTTP代理连接 HTTPS通道。
· 7 支持java本地SOCKET套接字服务器代理。
· 8 支持基本身份验证,解密和加密验证。
· 9插件机制,自定义的验证方法。
· 10 通过POST方式分块上传大文件。
· 11 可插拔的安全套接字实现,使其应用第三方解决方案更加简单。
· 12可用于多线程应用,支持连接管理。可设置总的最大连接数以及每台主机最大连接数。检测并关闭废弃连接。
· 13自动处理cookie,阅读Cookie、设置Cookie。
· 14插件机制,自定义的Cookie策略。
· 15 Request output streams可避免Body的任何内容直接通过流套接字写入服务器。
· 16 Response input streams能够直接从SOCKET服务器高效地阅读Response Body体。
· 17 永久连接在HTTP/1.0使用KeepAlive,HTTP/1.1使用persistance 。
· 18直接获取服务器返回的Response状态码和头信息。
· 19 可设置连接超时。
· 20 HttpMethods通过实现命令模式以达到并发请求和高效重复利用连接。
21 源代码免费提供Apache软件许可证。
安装
· HttpClient的官方下载地址:
· 下面将逐一介绍怎样使用这些功能。首先,我们必须安装好 HttpClient。
· HttpClient 可以在http://jakarta.apache.org/commons/httpclient/downloads.html下载
· HttpClient 用到了 Apache Jakarta common 下的子项目 logging,你可以从这个地址http://jakarta.apache.org/site/downloads/downloads_commons-logging.cgi下载到 common logging,从下载后的压缩包中取出 commons-logging.jar 加到 CLASSPATH 中
· HttpClient 用到了 Apache Jakarta common 下的子项目 codec,你可以从这个地址http://jakarta.apache.org/site/downloads/downloads_commons-codec.cgi 下载到最新的 common codec,从下载后的压缩包中取出 commons-codec-1.x.jar 加到 CLASSPATH 中
在后面的章节中,我会就HttpClient使用做详细的论述!