一.httpclient的简单介绍
HttpClient概述
超文本传输协议(HTTP)可能是当今Internet上使用的最重要的协议。
Web服务,支持网络的设备和网络计算的发展继续将HTTP协议的作用扩展到用户驱动的Web浏览器之外,同时增加了需要HTTP支持的应用程序的数量。
尽管java.net包提供了通过HTTP访问资源的基本功能,但它并未提供许多应用程序所需的完全灵活性或功能。
HttpClient旨在通过提供一个高效,最新且功能丰富的软件包来实现这一空白,该软件包实现了最新HTTP标准和建议的客户端。
HttpClient专为扩展而设计,同时为基本HTTP协议提供强大支持,HttpClient可能对构建支持HTTP的客户端应用程序(如Web浏览器,Web服务客户端或利用或扩展HTTP协议进行分布式通信的系统)感兴趣。
二.HttpClient的特征
- 基于标准的纯Java,HTTP版本1.0和1.1的实现
- 在可扩展的OO框架中完全实现所有HTTP方法(GET,POST,PUT,DELETE,HEAD,OPTIONS和TRACE)。
- 支持使用HTTPS(HTTP over SSL)协议进行加密。
- 通过HTTP代理进行透明连接。
- 通过HTTP代理通过CONNECT方法进行隧道连接。
- 基本,摘要,NTLMv1,NTLMv2,NTLM2会话,SNPNEGO,Kerberos身份验证方案。
- 用于自定义身份验证方案的插件机制。
- 可插拔安全插座工厂,使其更易于使用第三方解决方案
- 连接管理支持在多线程应用程序中使用。支持设置最大总连接数以及每个主机的最大连接数。检测并关闭陈旧连接。
- 用于读取Set-Cookie的自动Cookie处理:来自服务器的标头,并在适当时将其发送回Cookie:标头。
- 用于自定义cookie策略的插件机制。
- 请求输出流以避免通过直接流式传输到服务器的套接字来缓冲任何内容主体。
- 响应输入流通过直接从套接字流式传输到服务器来有效地读取响应主体。
- 使用HTTP / 1.0中的KeepAlive和HTTP / 1.1中的持久连接的持久连接
- 直接访问服务器发送的响应代码和标头。
- 设置连接超时的能力。
- 支持HTTP / 1.1响应缓存。
- 源代码可在Apache许可下免费获得。