《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所有常见的需求,供开发者参考。

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

Apache HttpClient 4 3开发指南相关推荐

  1. Apache PDFbox快速开发指南

    Apache PDFbox快速开发指南 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 一.介绍 Apache PDFbox是一个开源的.基于Java的. ...

  2. Apache PDFbox开发指南之PDF文档读取

    转载请注明来源:http://blog.csdn.net/loongshawn/article/details/51542309 相关文章: <Apache PDFbox开发指南之PDF文本内容 ...

  3. Apache Beam开发指南

    http://blog.csdn.net/blwinner/article/details/54908057 本指南用于指导Beam用户使用Beam SDK创建数据处理pipeline(pipelin ...

  4. Redmine+Apache+SVN+Postfix完整配置指南

    2019独角兽企业重金招聘Python工程师标准>>> Redmine+Apache+SVN+Postfix完整配置指南 Edition Author State Date Desc ...

  5. 《智能路由器开发指南》——1.1 OpenWrt简介

    本节书摘来异步社区<智能路由器开发指南>一书中的第1章,第1.1节,作者:张永智 ,李章明,更多章节内容可以访问云栖社区"异步社区"公众号查看 1.1 OpenWrt简 ...

  6. 【Java Web开发指南】Maven+MyBatis实现增删改查的Demo

    文章目录 1 概述 1.1 Maven 1.2 Mybatis(ORM) 2 Mybatis开发指南 3 DATABASE 4 代码 4.1 目录结构 4.2 详细步骤 5 附录 1 概述 源码: h ...

  7. Spring高级程序设计(Spring框架创始人倾情推荐的权威开发指南)

    Spring高级程序设计(Spring框架创始人倾情推荐的权威开发指南) 市场价 :¥99.00 会员价 : ¥74.25(75折) 样章免费试读:http://www.china-pub.com/1 ...

  8. [转帖]2019 简易Web开发指南

    2019 简易Web开发指南 2019年即将到来,各位同学2018年辛苦了. 不管大家2018年过的怎么样,2019年还是要继续加油的! 在此我整理了个人认为在2019仍是或者将成为主流的技术与大家分 ...

  9. 【PHP】Sublime下PHP网站开发指南

    Sublime下PHP网站开发指南 作者:白宁超 2017年3月16日11:03:17 摘要:随着单位开发项目的需求,关于政务办公多年来一直使用php开发管理平台.笔者早年asp开发经验算是有些帮助, ...

最新文章

  1. python【蓝桥杯vip练习题库】ADV-120 6-17复数四则运算
  2. IIS身份验证的配置
  3. 掉一根头发,搞定二叉排序(搜索)树
  4. mysql的wait_timeout配置
  5. 小米手环无法模拟门卡_MIUI12轻体验:关于模拟门禁卡,你想知道的都在这里
  6. .NET6之MiniAPI(一):开始Mini API
  7. Mybatis报错:nested exception is org.apache.ibatis.binding.BindingException: Parameter ‘XXX‘ not found
  8. 开机时出现:reboot and select proper boot 、关于IDE与AHCI
  9. 转 Unity知识点0001(Yanlz+协程+List+MeshRender+对象池+链条关节+PlayerPrefs+脚本生命周期+LOD+)
  10. win10资源管理器频繁重启可能原因及解决方案
  11. 华为钱包无法连接服务器_您好 华为手机出现无法连接服务器是怎么回事?
  12. 暴走英雄坛服务器维护,《暴走英雄坛》4月29日更新公告
  13. 在线超级计算器(微积分、方程)
  14. ML302 OpenCPU系列(7)---AW8733A音频PA调试
  15. Ubuntu安装Elasticsearch集群及Kibana
  16. IOS开发入门之二——第一个App
  17. spring实现dubbo服务
  18. A Game of Thrones(84)
  19. 下一个10年,可能改变世界的5项重大发现!真正革命性的进步
  20. 天弘基金回应在支付宝 “无故扣款”,客户可自行取消

热门文章

  1. C语言,编写函数exchangeMaxMin(int arr[],int n),将该数组中最大最小值交换位置;
  2. 微软发布Windows 11测试版开始菜单和任务栏等区域无响应的解决办法
  3. 【JAVA 第三章 流程控制语句】课后习题 判断用户输入的数是否为质数
  4. python 学习笔记二 搭建ftp服务器
  5. 图表 stack属性_想快速了解MEAN Stack吗? 这是带有有用图表的文档。
  6. mvp最小可行产品_我们如何打造最低可行产品(MVP)
  7. 计算机专业跨专业考文科,给07年想跨专业考湖大计算机专业的同学
  8. LeetCode-234. 回文链表(C语言)
  9. 数据完整性(python 版)
  10. Ajax实现页面加载等待