Apache HttpClient 4 3开发指南
《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开发指南相关推荐
- Apache PDFbox快速开发指南
Apache PDFbox快速开发指南 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 一.介绍 Apache PDFbox是一个开源的.基于Java的. ...
- Apache PDFbox开发指南之PDF文档读取
转载请注明来源:http://blog.csdn.net/loongshawn/article/details/51542309 相关文章: <Apache PDFbox开发指南之PDF文本内容 ...
- Apache Beam开发指南
http://blog.csdn.net/blwinner/article/details/54908057 本指南用于指导Beam用户使用Beam SDK创建数据处理pipeline(pipelin ...
- Redmine+Apache+SVN+Postfix完整配置指南
2019独角兽企业重金招聘Python工程师标准>>> Redmine+Apache+SVN+Postfix完整配置指南 Edition Author State Date Desc ...
- 《智能路由器开发指南》——1.1 OpenWrt简介
本节书摘来异步社区<智能路由器开发指南>一书中的第1章,第1.1节,作者:张永智 ,李章明,更多章节内容可以访问云栖社区"异步社区"公众号查看 1.1 OpenWrt简 ...
- 【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 ...
- Spring高级程序设计(Spring框架创始人倾情推荐的权威开发指南)
Spring高级程序设计(Spring框架创始人倾情推荐的权威开发指南) 市场价 :¥99.00 会员价 : ¥74.25(75折) 样章免费试读:http://www.china-pub.com/1 ...
- [转帖]2019 简易Web开发指南
2019 简易Web开发指南 2019年即将到来,各位同学2018年辛苦了. 不管大家2018年过的怎么样,2019年还是要继续加油的! 在此我整理了个人认为在2019仍是或者将成为主流的技术与大家分 ...
- 【PHP】Sublime下PHP网站开发指南
Sublime下PHP网站开发指南 作者:白宁超 2017年3月16日11:03:17 摘要:随着单位开发项目的需求,关于政务办公多年来一直使用php开发管理平台.笔者早年asp开发经验算是有些帮助, ...
最新文章
- python【蓝桥杯vip练习题库】ADV-120 	6-17复数四则运算
- IIS身份验证的配置
- 掉一根头发,搞定二叉排序(搜索)树
- mysql的wait_timeout配置
- 小米手环无法模拟门卡_MIUI12轻体验:关于模拟门禁卡,你想知道的都在这里
- .NET6之MiniAPI(一):开始Mini API
- Mybatis报错:nested exception is org.apache.ibatis.binding.BindingException: Parameter ‘XXX‘ not found
- 开机时出现:reboot and select proper boot 、关于IDE与AHCI
- 转 Unity知识点0001(Yanlz+协程+List+MeshRender+对象池+链条关节+PlayerPrefs+脚本生命周期+LOD+)
- win10资源管理器频繁重启可能原因及解决方案
- 华为钱包无法连接服务器_您好 华为手机出现无法连接服务器是怎么回事?
- 暴走英雄坛服务器维护,《暴走英雄坛》4月29日更新公告
- 在线超级计算器(微积分、方程)
- ML302 OpenCPU系列(7)---AW8733A音频PA调试
- Ubuntu安装Elasticsearch集群及Kibana
- IOS开发入门之二——第一个App
- spring实现dubbo服务
- A Game of Thrones(84)
- 下一个10年,可能改变世界的5项重大发现!真正革命性的进步
- 天弘基金回应在支付宝 “无故扣款”,客户可自行取消
热门文章
- C语言,编写函数exchangeMaxMin(int arr[],int n),将该数组中最大最小值交换位置;
- 微软发布Windows 11测试版开始菜单和任务栏等区域无响应的解决办法
- 【JAVA 第三章 流程控制语句】课后习题 判断用户输入的数是否为质数
- python 学习笔记二 搭建ftp服务器
- 图表 stack属性_想快速了解MEAN Stack吗? 这是带有有用图表的文档。
- mvp最小可行产品_我们如何打造最低可行产品(MVP)
- 计算机专业跨专业考文科,给07年想跨专业考湖大计算机专业的同学
- LeetCode-234. 回文链表(C语言)
- 数据完整性(python 版)
- Ajax实现页面加载等待