HttpClient在HTTP协议接口测试中的使用

简介: TTP协议的接口测试中,使用到最多的就是GET请求与POST请求,其中POST请求有FORM参数提交请求与RAW请求,下面我将结合HttpClient来实现一下这三种形式: 一.GET请求: GET请求时,参数一般是写在链接上的,代码如下: 1 public void get(String...

TTP协议的接口测试中,使用到最多的就是GET请求与POST请求,其中POST请求有FORM参数提交请求与RAW请求,下面我将结合HttpClient来实现一下这三种形式:

一.GET请求: GET请求时,参数一般是写在链接上的,代码如下:

 1 public void get(String url){
 2     CloseableHttpClient httpClient = null;
 3     HttpGet httpGet = null;
 4     try {
 5         httpClient = HttpClients.createDefault();
 6         RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(20000).setConnectTimeout(20000).build();     
 7         httpGet = new HttpGet(url);
 8         httpGet.setConfig(requestConfig);
 9         CloseableHttpResponse response = httpClient.execute(httpGet);
10         HttpEntity httpEntity = response.getEntity();
11         System.out.println(EntityUtils.toString(httpEntity,"utf-8"));
12     } catch (ClientProtocolException e) {
13         e.printStackTrace();
14     } catch (IOException e) {
15         e.printStackTrace();
16     }finally{
17         try {
18             if(httpGet!=null){
19                 httpGet.releaseConnection();
20             }
21             if(httpClient!=null){
22                 httpClient.close();
23             }
24         } catch (IOException e) {
25             e.printStackTrace();
26         }
27     }
28 }

二. POST请求的表单提交方式,代码如下:

 1 public void post(String url, Map<String, String> params){
 2     CloseableHttpClient httpClient = null;
 3     HttpPost httpPost = null;
 4     try {
 5         httpClient = HttpClients.createDefault();
 6         RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(20000).setConnectTimeout(20000).build();
 7         httpPost = new HttpPost(url);
 8         httpPost.setConfig(requestConfig);
 9         List<NameValuePair> ps = new ArrayList<NameValuePair>();
10         for (String pKey : params.keySet()) {
11             ps.add(new BasicNameValuePair(pKey, params.get(pKey)));
12         }
13         httpPost.setEntity(new UrlEncodedFormEntity(ps));
14         CloseableHttpResponse response = httpClient.execute(httpPost);
15         HttpEntity httpEntity = response.getEntity();
16         System.out.println(EntityUtils.toString(httpEntity,"utf-8"));
17     } catch (ClientProtocolException e) {
18         e.printStackTrace();
19     } catch (IOException e) {
20         e.printStackTrace();
21     }finally{
22         try {
23             if(httpPost!=null){
24                 httpPost.releaseConnection();
25             }
26             if(httpClient!=null){
27                 httpClient.close();
28             }
29         } catch (IOException e) {
30             e.printStackTrace();
31         }
32     }
33 }

三. POST请求的RAW参数传递:

 1 public void post(String url, String body){
 2     CloseableHttpClient httpClient = null;
 3     HttpPost httpPost = null;
 4     try {
 5         httpClient = HttpClients.createDefault();
 6         RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(20000).setConnectTimeout(20000).build();
 7         httpPost = new HttpPost(url);
 8         httpPost.setConfig(requestConfig);
 9         httpPost.setEntity(new StringEntity(body));
10         CloseableHttpResponse response = httpClient.execute(httpPost);
11         HttpEntity httpEntity = response.getEntity();
12         System.out.println(EntityUtils.toString(httpEntity,"utf-8"));
13     } catch (ClientProtocolException e) {
14         e.printStackTrace();
15     } catch (IOException e) {
16         e.printStackTrace();
17     }finally{
18         try {
19             if(httpPost!=null){
20                 httpPost.releaseConnection();
21             }
22             if(httpClient!=null){
23                 httpClient.close();
24             }
25         } catch (IOException e) {
26             e.printStackTrace();
27         }
28     }
29 }

原文:http://www.cnblogs.com/zhangfei


img_42a4adae4716d0e15c3eeaabfd040044.png

注:转载需注明出处及作者。

流柯      

目录
相关文章
|
5月前
|
缓存 负载均衡 网络协议
HTTP 与 SOCKS5 代理协议:企业级选型指南与工程化实践
面向企业网络与数据团队的代理协议选型与治理指南,基于流量特征选择HTTP或SOCKS5协议,通过多协议网关统一出站,结合托管网络降低复杂度,实现稳定吞吐、可预测时延与合规落地。
|
8月前
|
缓存 监控 搜索推荐
301重定向实现原理全面解析:从HTTP协议到SEO最佳实践
301重定向是HTTP协议中的永久重定向状态码,用于告知客户端请求的资源已永久移至新URL。它在SEO中具有重要作用,能传递页面权重、更新索引并提升用户体验。本文详解其工作原理、服务器配置方法(如Apache、Nginx)、对搜索引擎的影响及最佳实践,帮助实现网站平稳迁移与优化。
841 68
|
7月前
HTTP协议中请求方式GET 与 POST 什么区别 ?
GET和POST的主要区别在于参数传递方式、安全性和应用场景。GET通过URL传递参数,长度受限且安全性较低,适合获取数据;而POST通过请求体传递参数,安全性更高,适合提交数据。
700 2
|
7月前
|
应用服务中间件
HTTP协议中常见的状态码
HTTP协议状态码分为1xx、2xx、3xx、4xx、5xx五类,常见状态码包括:101(请求已接受)、200(请求成功)、302(重定向)、400(请求错误)、401(未认证)、403(无权限)、404(资源不存在),以及500(服务器错误)、502(网关错误)、503(服务不可用)、504(网关超时)等。
423 0
|
7月前
|
网络协议 安全 网络安全
什么是HTTP协议
HTTP协议是超文本传输协议,基于TCP,规定了客户端与服务器端通信规则,但数据以明文传输,安全性低。HTTPS则通过SSL加密保障数据安全。两者默认端口不同,HTTP为80,HTTPS为443。HTTPS安全性更高,但消耗更多服务器资源。
277 0
|
7月前
|
数据采集 Web App开发 JSON
Python爬虫基本原理与HTTP协议详解:从入门到实践
本文介绍了Python爬虫的核心知识,涵盖HTTP协议基础、请求与响应流程、常用库(如requests、BeautifulSoup)、反爬应对策略及实战案例(如爬取豆瓣电影Top250),帮助读者系统掌握数据采集技能。
649 0
|
8月前
|
存储 网络协议 安全
HTTP 协议及会话跟踪机制详解
本文详解了 HTTP 协议的核心知识,包括其定义(超文本传输协议,基于 TCP,规定客户端与服务器通信规则)及与 HTTPS 的区别(安全性、端口、资源消耗)。 介绍了 GET 与 POST 请求的差异(参数限制、安全性、应用场景),以及 Restful 风格(通过 URL 定位资源,请求方式决定操作)。列举了常见 HTTP 状态码(如 200 成功、404 资源未找到),对比了转发与重定向的区别(服务器端一次请求 vs 客户端两次请求)。 还阐述了会话跟踪机制:Cookie 基于客户端存储,通过Set-Cookie和Cookie头实现,安全性较低;Session 基于服务端存储,依赖 C
711 1
|
8月前
|
JSON 运维 网络协议
做短信接口时,http接口和cmpp接口怎么选?
本文介绍了短信接口中HTTP与CMPP协议的区别及适用场景,帮助开发者根据业务需求选择合适的接口类型。
929 1
|
9月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
1326 23