Httpclient4 简介

Httpclient4 简介1.简介httpclient4是一个java

1. 简介

httpclent是java中一个关于http协议的程序包 ,主要适用于java模拟浏览器使用HTTP协议进行通信,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。Http协议是互联网中一个使用最广泛的一个协议。

2. 组成

主要使用有三个部分组成。

  1. httpcomponents  core,主要是由一些低层次的组件构成,实现了Http协议的底层框架,可以用来构成客户端和服务端的http服务。支持阻塞和非阻塞I/O,同时支持java中NIO。
  2. httpcomponents client,是基于core模块构建的http agent,提供一些高级的http服务。
  3. httpcomponents asyncclient,是基于core中NIO方式实现的,用来支持大量并
在实际使用中,我们一般不直接使用core模块,而是使用httpcomponent client模块构建我们的程序。httpclient一般使用流程都是执行一个http请求,然后得到制定服务器的响应response,然后根据响应我们做出响应的处理。
一个典型的例子如下所示

CloseableHttpClient httpclient = HttpClients.createDefault();
HttpGet httpget = new HttpGet("http://localhost/");
CloseableHttpResponse response = httpclient.execute(httpget);
try {
 <...>
} finally {
 response.close();
}

3. http 请求(request)

Http请求的格式如下:
<request-line>
<headers>
<blank line>
[<request-body>]

在HTTP请求中,第一行必须是一个请求行(request line),用来说明请求类型、要访问的资源以及使用的HTTP版本。紧接着是一个首部(header)小节,用来说明服务器要使用的附加信息。在首部之后是一个空行,再此之后可以添加任意的其他数据[称之为主体(body)]。

在HTTP中,定义了多种请求类型,通常我们关心的只有GET请求和POST请求。只要在Web浏览器上输入一个URL,浏览器就将基于该URL向服务器发送一个GET请求,以告诉服务器获取并返回什么资源。


Httpclient可以通过BasicHttpRequestl新建一个请求,如下所示
HttpRequest request = new BasicHttpRequest("GET", "/", HttpVersion.HTTP_1_1);System.out.println(request.getRequestLine().getMethod());System.out.println(request.getRequestLine().getUri());System.out.println(request.getProtocolVersion());System.out.println(request.getRequestLine().toString());

输出
GET/HTTP/1.1GET / HTTP/1.1


HttpClient支持各种请求,GET,HEAD, POST, PUT, DELETE, TRACE and OPTIONS.。对应的各种请求方式为 HttpGet,HttpHead, HttpPost, HttpPut, HttpDelete, HttpTrace, and HttpOptions。
例如get请求方式
HttpGet httpget = new HttpGet( "http://www.google.com/search?hl=en&q=httpclient&btnG=Google+Search&aq=f&oq=");

Httpclent提供一个URIBuilder类用来构建一些需要请求的URI;如:

URI uri = new URIBuilder() .setScheme("http") .setHost("www.google.com") .setPath("/search") .setParameter("q", "httpclient") .setParameter("btnG", "Google Search") .setParameter("aq", "f") .setParameter("oq", "") .build();HttpGet httpget = new HttpGet(uri);

4. http 响应(Response)

如下所示,HTTP响应的格式与请求的格式十分类似 , 在响应中唯一真正的区别在于第一行中用状态信息代替了请求信息。状态行(status line)通过提供一个状态码来说明所请求的资源情况。:

<status-line>
<headers>
<blank line>
[<response-body>]


可以用BasicHttpResponse构建一个响应。

HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, 
HttpStatus.SC_OK, "OK");
System.out.println(response.getProtocolVersion());
System.out.println(response.getStatusLine().getStatusCode());
System.out.println(response.getStatusLine().getReasonPhrase());
System.out.println(response.getStatusLine().toString());

输出:

HTTP/1.1
200
OK
HTTP/1.1 200 OK


今天的文章Httpclient4 简介分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/8312.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注