目前,超文本传输协议HTTP是互联网中使用最基本的协议。不仅仅是用户使用的web浏览器,像Web服务,网络应用程序和一些网络计算都在使用HTTP,越来越多的应用使用HTTP协议。
尽管java.net包提供了使用HTTP访问资源的方法,但它很难方便地支撑很多应用程序复杂的HTTP应用。HttpClient很好的弥补了这方面的空白,基于HTTP标准和众多需求,它提供了高效的、流行的、丰富的客户端工具包。
在对HTTP基本的支持外,它还是可扩展的,HttpClient可以构建基于HTTP的WEB浏览器,web service客户端,或者基于HTTP协议的分布式计算。
特性支持
- 纯JAVA,基于HTTP 1.0和1.1标准。
- 使用可扩展OO框架,实现了所有的HTTP请求方法(GET、POST、PUT、DELETE、OPTIONS和TRACE)。
- HTTPS协议的支持。
- HTTP代理传输支持。
- 使用连接方法来创建基于HTTP代理的HTTPS连接通道。
- 基本的、基于消息摘要的、NTLMv1、NTLMv2、NTLM2的session支持,SNPNEGO、Kerberos认证机制。
- 个性化定制的插件机制。
- 可插拨的socket编码机制,可以很方便地使用第三方解析机制。
- 支持多线程连接管理(连接池管理),支持最大连接数设置以及每个主机支持的最大连接数设置。发现并关闭失效连接。
- 自动读写Cookie机制(Set-Cookie头):自动读取从服务器端发送过来的cookie,并将其封装在同一个客户端的请求中发送回服务器端。
- 可插件化(扩展)的cookie处理机制。
- 为了避免缓存(buffer),请求输出流会直接将body流传送给服务器socket。
- 为了更高效地读取数据,响应输入流会直接从服务器socket读取响应body流。
- 持久化连接的支持,在HTTP 1.0协议下使用KeepAlive来支持。
- 访问响应码和响应头会变得更直接。
- 连接超时设置。
- 支持HTTP/1.1的响应缓存(Cache)。
- 完全免费。