HttpClient-4.0.1 官方教程
HttpClient 不是一个浏览器,它是一个客户端 HTTP 传输类库。HttpClient 作用是传输和接收 HTTP 消息。
HttpClient 不尝试缓存内容,执行内嵌 HTML 页面中的 javascript 脚本,尝试猜测内容类型,重新定义请求/重定
向 URI 位置,其他功能与 HTTP 传输无关。
第一章 Fundamentals(基础)
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;
byte[] tmp = new byte[2048];
while ((l = instream.read(tmp)) != -1) {
// …..
}
}
1.1.1 HTTP Request (HTTP请求)
所有的 HTTP 请求有一个请求行包含一个方法名,请求 URI 和 HTTP 协议版本。
HttpClient 支持在 HTTP/1.1 规范中定义的所有 HTTP 方法:GET、HEAD、POST、PUT、 DELETE,、TRACE and
OPTIONS,用一些特殊的类来表示每一个方法:HttpGet、HttpHead、 HttpPost、 HttpPut、 HttpDelete、 HttpTrace
和 HttpOptions。
HTTP 请求 URI 的包括协议、主机名、可选的端口、资源的路径、可选的查询和可选的片段。
HttpGet httpget = new HttpGet(
"http://www.google.com/search?hl=en&q=httpclient&btnG=Google+Search&aq=f&oq=");