Apache HttpClient 4.3开发指南

《Apache HttpClient 4.3开发指南》

原文地址:http://blog.csdn.net/chszs/article/details/16854747

一、概述

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、配置请求的超时设置

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();  
}  








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值