Apache HttpClient 4.3开发指南

简介: 版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/16854747 《Apache HttpClient 4.3开发指南》作者:chszs,转载需注明。
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/16854747

《Apache HttpClient 4.3开发指南》

作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszs

一、概述

Apache HttpClient 4系列已经发布很久了,但由于它与HttpClient 3.x版本完全不兼容,以至于业内采用此库的公司较少,在互联网上也少有相关的文档资料分享。

本文旨在写一个简要的Apache HttpClient 4.3开发指南,帮助开发者快速上手Apache HttpClient 4.3.x库。

要注意的是,本文档中的代码在低于HttpClient 4.3版本的地方可能不能运行。

二、开发手册

1、创建HTTP客户端
CloseableHttpClient client = HttpClientBuilder.create().build();

2、发送基本的GET请求
instance.execute(new HttpGet(“http://www.baidu.com”));

3、获取HTTP响应的状态码
String url = “http://www.baidu.com”;
CloseableHttpResponse response = instance.execute(new HttpGet(url));
assertThat(response.getStatusLine().getStatusCode(), equalTo(200));

4、获取响应的媒体类型
String url = “http://www.baidu.com”;
CloseableHttpResponse response = instance.execute(new HttpGet(url));
String contentMimeType = ContentType.getOrDefault(response.getEntity()).getMimeType();
assertThat(contentMimeType, equalTo(ContentType.TEXT_HTML.getMimeType()));

5、获取响应的BODY部分
String url = “http://www.baidu.com”;
CloseableHttpResponse response = instance.execute(new HttpGet(url));
String bodyAsString = EntityUtils.toString(response.getEntity());
assertThat(bodyAsString, notNullValue());

6、配置请求的超时设置
@Test(expected=SocketTimeoutException.class)
public void givenLowTimeout_whenExecutingRequestWithTimeout_thenException() throws ClientProtocolException, IOException{
    RequestConfig requestConfig = RequestConfig.custom()
	.setConnectionRequestTimeout(50).setConnectTimeout(50)
	.setSocketTimeout(50).build();
    HttpGet request = new HttpGet(SAMPLE_URL);
    request.setConfig(requestConfig);
    instance.execute(request);
}

7、发送POST请求
instance.execute(new HttpPost(SAMPLE_URL));

8、为HTTP请求配置重定向
CloseableHttpClient instance = HttpClientBuilder.create().disableRedirectHandling().build();
CloseableHttpResponse response = instance.execute(new HttpGet(SAMPLE_URL));
assertThat(reponse.getStatusLine().getStatusCode(), equalTo(301));

9、配置请求的HEADER部分
HttpGet request = new HttpGet(SAMPLE_URL);
request.addHeader(HttpHeaders.ACCEPT, “application/xml”);
response = instance.execute(request);

10、获取响应的HEADER部分
CloseableHttpResponse response = instance.execute(new HttpGet(SAMPLE_URL));
Header[] headers = response.getHeaders(HttpHeaders.CONTENT_TYPE);
assertThat(headers, not(emptyArray()));

11、关闭或释放资源
response = instance.execute(new HttpGet(SAMPLE_URL));
try{
  HttpEntity entity = response.getEntity();
  if(entity!=null){
InputStream instream = entity.getContent();
instream.close();
  }
} finally{
  response.close();
}

以上内容涵盖了HttpClient 4.3所有常见的需求,供开发者参考。


目录
相关文章
|
3月前
|
Java Apache
Apache HttpClient 4.5设置超时时间
Apache HttpClient 4.5设置超时时间
|
5月前
|
数据采集 安全 Java
Kotlin+Apache HttpClient+代理服务器=高效的eBay图片爬虫
本文将为你介绍一种高效的eBay图片爬虫的实现方式,让你可以用Kotlin+Apache HttpClient+代理服务器的组合来轻松地下载eBay的图片。
Kotlin+Apache HttpClient+代理服务器=高效的eBay图片爬虫
|
8月前
|
Arthas Java 测试技术
一次NSF FeignClient支持Apache HttpClient的优化
一次NSF FeignClient支持Apache HttpClient的优化
216 2
|
Java Apache Maven
Apache HttpComponents 之 Httpclient 参考
Apache HttpComponents Apache HttpComponents 项目负责创建和维护一个基于 HTTP 和相关协议的底层 Java 组件工具集。
493 0
Apache HttpComponents 之 Httpclient 参考
|
Java 测试技术 API
使用apache的HttpClient进行http通讯,隐藏的HTTP请求头部字段是如何自动被添加的
使用apache的HttpClient进行http通讯,隐藏的HTTP请求头部字段是如何自动被添加的
152 0
使用apache的HttpClient进行http通讯,隐藏的HTTP请求头部字段是如何自动被添加的
|
Apache
Apache HttpClient库里的日志实现检测原理
Apache HttpClient库里的日志实现检测原理
126 0
Apache HttpClient库里的日志实现检测原理
|
移动开发 JSON Java
Apache HttpClient库的日志级别设置原理
Apache HttpClient库的日志级别设置原理
633 0
Apache HttpClient库的日志级别设置原理
Apache httpclient的execute方法调试
Apache httpclient的execute方法调试
Apache httpclient的execute方法调试
|
移动开发 JSON Java
Apache HttpClient库的日志级别设置原理
Apache HttpClient库的日志级别设置原理
Apache HttpClient库的日志级别设置原理
|
Apache
Apache httpclient的execute方法调试
Apache httpclient的execute方法调试
116 0
Apache httpclient的execute方法调试

推荐镜像

更多