httpclient4 中文版帮助文档,最新官方版翻译版
前言
超文本传输协议(HTTP)也许是当今互联网上使用的最重要的协议了。Web 服务,有网络
功能的设备和网络计算的发展,都持续扩展了 HTTP 协议的角色,超越了用户使用的 Web
浏览器范畴,同时,也增加了需要 HTTP 协议支持的应用程序的数量。
尽管 java.net 包提供了基本通过 HTTP 访问资源的功能,但它没有提供全面的灵活性和其它
很多应用程序需要的功能。HttpClient 就是寻求弥补这项空白的组件,通过提供一个有效的,
保持更新的,功能丰富的软件包来实现客户端最新的 HTTP 标准和建议。
为扩展而设计,同时为基本的 HTTP 协议提供强大的支持,HttpClient 组件也许就是构建
HTTP 客户端应用程序,比如 web 浏览器,web 服务端,利用或扩展 HTTP 协议进行分布式
通信的系统的开发人员的关注点。
1. HttpClient 的范围
基于 HttpCore[http://hc.apache.org/httpcomponents-core/index.html]的客户端
HTTP 运输实现库
基于经典(阻塞)I/O
内容无关
2. 什么是 HttpClient 不能做的
HttpClient 不是一个浏览器。它是一个客户端的 HTTP 通信实现库。HttpClient 的目标是发
送和接收 HTTP 报文。HttpClient 不会去缓存内容,执行 嵌入在 HTML 页面中的 javascript
代码,猜测内容类型,重新格式化请求/重定向 URI,或者其它和 HTTP 运输无关的功能。
第一章 基础
1.1 执行请求
HttpClient 最重要的功能是执行 HTTP 方法。一个 HTTP 方法的执行包含一个或多个
HTTP 请求/HTTP 响应交换,通常由 HttpClient 的内部来处理。而期望用户提供一个要执行
的请求对象,而 HttpClient 期望传输请求到目标服务器并返回对应的响应对象,或者当执行
不成功时抛出异常。
很自然地,HttpClient API 的主要切入点就是定义描述上述规约的 HttpClient 接口。
这里有一个很简单的请求执行过程的示例:
HttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet("http://localhost/");
HttpResponse response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
if (entity != null) {
InputStream instream = entity.getContent();
int l;