【HttpClient4】 基本操作
1、创建HTTP客户端
![](https://code.csdn.net/assets/CODE_ico.png)
- CloseableHttpClient client = HttpClientBuilder.create().build();
2、发送基本的GET请求
![](https://code.csdn.net/assets/CODE_ico.png)
- instance.execute(new HttpGet(“http://www.baidu.com”));
3、获取HTTP响应的状态码
![](https://code.csdn.net/assets/CODE_ico.png)
- String url = “http://www.baidu.com”;
- CloseableHttpResponse response = instance.execute(new HttpGet(url));
- assertThat(response.getStatusLine().getStatusCode(), equalTo(200));
4、获取响应的媒体类型
![](https://code.csdn.net/assets/CODE_ico.png)
- 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部分
![](https://code.csdn.net/assets/CODE_ico.png)
- String url = “http://www.baidu.com”;
- CloseableHttpResponse response = instance.execute(new HttpGet(url));
- String bodyAsString = EntityUtils.toString(response.getEntity());
- assertThat(bodyAsString, notNullValue());
6、配置请求的超时设置
![](https://code.csdn.net/assets/CODE_ico.png)
- @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请求
![](https://code.csdn.net/assets/CODE_ico.png)
- instance.execute(new HttpPost(SAMPLE_URL));
8、为HTTP请求配置重定向
![](https://code.csdn.net/assets/CODE_ico.png)
- CloseableHttpClient instance = HttpClientBuilder.create().disableRedirectHandling().build();
- CloseableHttpResponse response = instance.execute(new HttpGet(SAMPLE_URL));
- assertThat(reponse.getStatusLine().getStatusCode(), equalTo(301));
9、配置请求的HEADER部分
![](https://code.csdn.net/assets/CODE_ico.png)
- HttpGet request = new HttpGet(SAMPLE_URL);
- request.addHeader(HttpHeaders.ACCEPT, “application/xml”);
- response = instance.execute(request);
10、获取响应的HEADER部分
![](https://code.csdn.net/assets/CODE_ico.png)
- CloseableHttpResponse response = instance.execute(new HttpGet(SAMPLE_URL));
- Header[] headers = response.getHeaders(HttpHeaders.CONTENT_TYPE);
- assertThat(headers, not(emptyArray()));
11、关闭或释放资源
![](https://code.csdn.net/assets/CODE_ico.png)
- response = instance.execute(new HttpGet(SAMPLE_URL));
- try{
- HttpEntity entity = response.getEntity();
- if(entity!=null){
- InputStream instream = entity.getContent();
- instream.close();
- }
- } finally{
- response.close();
- }
12 URI构造器
URI uri = new URIBuilder().setScheme("http").setHost("www.baidu.com").setPath("wenku").setParameter("name", "xiyouji").setParameter("author", "wuchengen").build();System.out.println(uri); // 结果为http://www.baidu.comwenku?name=xiyouji&author=wuchengen
13 FORM参数
List<NameValuePair> formParamList = new ArrayList<NameValuePair>();formParamList.add(new BasicNameValuePair("name", "zhangsan"));formParamList.add(new BasicNameValuePair("age", "20"));UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(formParamList);HttpPost post = new HttpPost();post.setEntity(formEntity);
14 String消息体
StringEntity stringEntity = new StringEntity("{\"name\":\"fabregas\"}");StringEntity stringEntity2 = new StringEntity("{\"name\":\"fabregas\"}", ContentType.APPLICATION_JSON);StringEntity stringEntity3 = new StringEntity("{\"name\":\"fabregas\"}", Consts.UTF_8);StringEntity stringEntity4 = new StringEntity("{\"name\":\"fabregas\"}", ContentType.create("application/json", "UTF-8"));StringEntity stringEntity5 = new StringEntity("{\"name\":\"fabregas\"}", ContentType.APPLICATION_JSON.withCharset(Consts.UTF_8));
15 连接池
PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager();connManager.setMaxTotal(200);connManager.setDefaultMaxPerRoute(10);CloseableHttpClient client = HttpClients.custom().setConnectionManager(connManager).build();
【HttpClient4】 基本操作相关推荐
- 数据结构(03)— 数据处理基本操作(数据的查找、新增、删除、修改)
我们先来看一个关于查找的例子.查找,就是从复杂的数据结构中,找到满足某个条件的元素.通常可从以下两个方面来对数据进行查找操作: 根据元素的位置或索引来查找: 根据元素的数值特征来查找. 针对上述两种 ...
- pytorch方法,Tensor及其基本操作_重点
由于之前的草稿都没了,现在只有重写-. 我好痛苦 本章只是对pytorch的常规操作进行一个总结,大家看过有脑子里有印象就好,知道有这么个东西,需要的时候可以再去详细的看,另外也还是需要在实战中多运用 ...
- Gradle安装使用以及基本操作
转自:https://www.cnblogs.com/linkstar/p/7899191.html Gradle安装使用以及基本操作 阅读目录 简单介绍 安装 使用idea创建一个web的Gradl ...
- c++文件读取空格_程序员术与道:术—C语言对文件进行处理,文件处理的基本操作...
各种编程语言都实现了文件的基本操作,提供了对应的接口,本篇文章先为你介绍C语言对文件进行处理和文件处理的基本操作.主要从以下几个方面进行介绍: 读取文件 写入文件 重命名文件 读取目录 读取目录下的文 ...
- 【Pandas库】(3) DataFrame的创建方法及基本操作
各位同学好,今天给大家介绍一下Pandas库中DataFrame类型数据的创建方法和基本操作. 文章内容如下: (1)使用字典类创建. 字典类有:①数组.列表.元组构成的字典:②Series构造的字典 ...
- 【MySQL】缩略语PK NN UQ BIN UN ZF AI G、基本操作语句
一.缩略语 PK:primary key 主键 NN:not null 非空 UQ:unique 唯一索引 BIN:binary 二进制数据 UN:unsigned 无符号整数(非负数) ZF:zer ...
- MySQL中定义fk语句_MySQL基础篇/第3篇:MySQL基本操作语句.md · qwqoo/MySQL-Review - Gitee.com...
### 第3篇:MySQL基本操作语句 - MySQL基础操作 #### 排序检索数据 - 之前的数据没有进行排序,其是按照默认在数据表中的数据返回的 - SELECT语句的ORDER BY 子句进行 ...
- OpenCV-Java版学习(3.对视频的基本操作)
前言 上一节我们学习了使用OpenCV对图像进行一些基础操作,现在我们学习对视频进行一些基础的操作. 对视频的基本操作 从相机中读取视频 我们从电脑自带的摄像头捕捉一段视频并在屏幕上显示出来,代码如下 ...
- JDBC编程:2(数据库的基本操作)
数据库的基本操作 查询数据 在开始前先简单地介绍一下什么是静态SQL和动态SQL: 静态SQL,在编译阶段就可以确定数据库要做什么事情.在某种高级语言中,如果嵌入了SQL语句,而这个SQL语句的主体结 ...
最新文章
- Linux下如何查看系统启动时间和运行时间(转)
- Java程序结合Aapche Ant进行远程服务器文件备份
- (一)为什么你应该(从现在开始就)写博客
- 个人工作总结09(第二阶段)
- JVM - Class常量池 || 运行时常量池
- Android深度探索第五章
- python matplotlib.figure.Figure.add_subplot()方法的使用
- 删除二叉搜索树中的节点
- Html5画布(canvas)实例之绘制矩形
- 查找出系统中大于50k 且小于100k 的文件并删除。
- C# DateTime.Compare判断两个DateTime 日期是否相等
- lol英雄联盟符文助手源码/一键应用符文
- Oracle 和Mysql Group by的细节与坑
- Java语言基础-反射机制、正则表达式
- 2021年胡润中国百富榜研究报告
- GBase 8c的运行环境
- 风袖使用RocketMQ实现订单状态转变
- 自己动手写Spring-1-简单的IOC实现
- 腾讯云服务器修改和重置登录密码图文教程
- 自我复盘-20210820