前言
超文本传输协议协议(HTTP协议)可能是当今互联网上最重要的协议。Web服务、需要网络支持的设备以及网络计算的持续增长扩展了HTTP协议在用户主导的web浏览器之外的作用,同时也增加了需要HTTP支持的应用程序数量。
尽管java.net包提供了使用HTTP协议访问资源的基本功能,但它提供的功能并不灵活也不完善。HttpClient通过提供一个有效,不断更新且功能丰富的工具包来完善java.net包不足的部分,同时这个工具包实现了最新的
HTTP协议的客户端部分的标准。
HttpClient除了提供基础的HTTP协议的支持外,也适用于需要使用HTTP协议的客户端应用,例如Web浏览器、Web服务的客户端,或者是基于HTTP协议进行通讯的分布式系统。
1. HttpClient特点
- 基于HttpCore的模拟HTTP协议客户端的工具包
- 基于经典的(阻塞)I/O
- 内容无关
2. HttpClient的不足
- HttpClient并不是一个浏览器。它只是一个模拟HTTP协议中的客户端行为的工具包。HttpClient的目的是发送和接收HTTP报文。HttpClient不会主动去处理正文Content,在HTML页面中执行JavaScript,猜测content-type。如果不是显式声明,它也不会进行请求格式化或者重写URI之类与HTTP报文传输无关的功能。