Httpclient4 简介
来源:互联网 发布:回收站恢复软件 编辑:程序博客网 时间:2024/05/17 03:29
1. 简介
httpclent是java中一个关于http协议的程序包 ,主要适用于java模拟浏览器使用HTTP协议进行通信,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。Http协议是互联网中一个使用最广泛的一个协议。
2. 组成
主要使用有三个部分组成。
- httpcomponents core,主要是由一些低层次的组件构成,实现了Http协议的底层框架,可以用来构成客户端和服务端的http服务。支持阻塞和非阻塞I/O,同时支持java中NIO。
- httpcomponents client,是基于core模块构建的http agent,提供一些高级的http服务。
- 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.1200OKHTTP/1.1 200 OK
0 0
- Httpclient4 简介
- HTTPClient4
- HttpClient4
- HttpClient4.0 Http连接池技术简介
- HttpClient4使用
- HttpClient4.0
- HttpClient4.3
- Httpclient4.5
- httpclient4.5
- HttpClient4.5
- httpClient4.5
- HttpClient4.3.1
- httpclient4的封装
- HttpClient4文件上传
- httpclient4的封装
- httpclient4登录网站
- httpclient4 超时时间
- HttpClient4 Post XML数据
- Activity页面之间的切换效果
- hdu 1728 逃离迷宫
- Hibernate进阶之组件类型认识和双向一对多关系混合映射
- php异步处理
- 《javascript高级程序设计》客户端检测学习笔记
- Httpclient4 简介
- 导出推送证书
- 线性结构常见应用之二——队列
- makefile 学习(一)
- 写文件的流程
- 基本数据结构——单链表
- php调用c接口
- Android 开发笔记
- 南阳58 最少步数