一 定义
提供高效的, 最新的, 功能丰富的支持HTTP协议的客户端编程工具包
二 功能
1 实现了所有HTTP的方法
2 支持自动转向
3 支持HTTPS协议
4 支持代理服务器
三 基本功能
1 GET方法
使用HttpClient需要以下6个步骤
1) 创建HttpClient的实例
2) 创建某种连接方法的实例, 在这里是GetMethod
在GetMethod的构造函数中传入待连接的地址
3) 调用第一步中创建好的实例的execute 方法来执行第二步中创建好的method 实
例
4) 读response
5) 释放连接,
无论执行方法是否成功, 都必须释放连接
6) 对得到后的内容进行处理
2 POST方法
1) 作用
用来向目的服务器发出请求, 要求它接受被附在请求后的实体, 并把它当做请求
队列中请求URL所指定资源的附加新子项
2) 功能
(1) 对现有资源的注释
(2) 向电子公告栏/新闻组/邮件列表或类似讨论组发送信息
(3) 提交数据块, 如将表单的结果提交给数据处理过程
(4) 通过附加操作来扩展数据库
四 代理器
1 setProxy方法
第一个参数是代理服务器地址
第二个参数是端口号
五 认证
1 服务器认证
HttpClient处理器认证几乎是透明的 , 仅需要开发人员提供登录信息 , 登录信息保存在HttpState类的实例中 , 可以通过setCredentials(String realm, Credentials cred)和getCredentials(String realm)来获取或设置
2 代理认证
用setProxyCredentials(String realm, Credentials cred)和getProxyCredentials(String realm)设、取登录信息
1)认证方案
(1)Basic
是HTTP中规定最早的也是最兼容的方案 , 遗憾的是也是一个不安全的一个方案 , 因为它以明码传送用户名和密码
它要求一个UsernamePasswordCredentials实例 , 可以指定服务器端的访问空间或采用默认的登录信息
(2)Digest
是HTTP1.1版本中增加的一个方案 , 虽然不如Basic得到的软件支持多 , 但还是
有广泛的使用
Digest方案比Basic方案安全得多 , 因为它根本就不通网络传送实际的密码 ,传
送的是利用这个密码对服务器传来的一个随机数的加密串 , 它要求一个UsernamePasswordCredentials实例 , 可以指定服务器端的访问空间或采用默认的登录信息
3 NTLM认证
这是HttpClient支持的最复杂的认证协议 , 需要一个NTCredentials实例