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

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

流柯      

目录
相关文章
|
6月前
|
消息中间件 运维 应用服务中间件
“企业微信iPad协议”凌晨断链:当最后一台测试机决定集体沉默
凌晨1:12,三连报警突响:“实例心跳超时”“消息队列堆积”“老板提刀赶来”。问题源于企业微信iPad协议迁移私有化后,因新旧CA根证书不兼容,触发TLS握手失败,导致全量会话中断。苹果严苛的证书校验机制将请求判定为中间人攻击,直接断连。排查抓包定位:客户端内置证书Pin仅认旧根。解决方案简单却关键:F5重导旧根证书,Nginx配置`ssl_trusted_certificate`指向旧链并reload。2:58,系统恢复,演练数据零丢失。教训深刻:文档未提CA白名单,真实逻辑藏于客户端二进制。部署前务必比对证书指纹,否则警报先于用户消息抵达。
283 1
|
7月前
|
搜索推荐 Devops 测试技术
避免无效回归!基于MCP协议的精准测试影响分析实践
本文揭示传统测试的"孤岛困境",提出MCP(Model Context Protocol)测试新范式,通过模型抽象业务、上下文感知环境和协议规范协作,实现从机械执行到智能测试的转变。剖析MCP如何颠覆测试流程,展示典型应用场景,并提供团队落地实践路径,助力测试工程师把握质量效率革命的新机遇。
|
9月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
1297 23
|
10月前
|
安全 网络协议 Linux
Linux网络应用层协议展示:HTTP与HTTPS
此外,必须注意,从HTTP迁移到HTTPS是一项重要且必要的任务,因为这不仅关乎用户信息的安全,也有利于你的网站评级和粉丝的信心。在网络世界中,信息的安全就是一切,选择HTTPS,让您的网站更加安全,使您的用户满意,也使您感到满意。
285 18
|
9月前
|
弹性计算 JavaScript Ubuntu
WebSocket协议相关的测试命令工具使用简介
本文介绍了针对WebSocket的测试工具wscat和websocat的基本使用方法,以及通过curl命令测试HTTP/HTTPS协议的方式。对于WebSocket,直接使用curl测试较为复杂,推荐使用wscat或websocat。文中详细说明了这两种工具的安装步骤、常用参数及连接示例,例如在ECS上开启8080端口监听并进行消息收发测试。此外,还提供了curl命令的手动设置头部信息以模拟WebSocket握手的示例,但指出curl仅能作为客户端测试工具,无法模拟服务器。
2812 4
|
10月前
|
网络安全 开发者
如何解决HTTPS协议在WordPress升级后对网站不兼容的问题
以上就是解决WordPress升级后HTTPS协议对网站的不兼容问题的方法。希望能把这个棘手的问题看成是学校的管理问题一样来应对,将复杂的技术问题变得更加有趣和形象,并寻觅出解决问题的方式。希望你的网站能在新的学期得到更好的发展!
268 19
|
10月前
|
JSON 安全 网络协议
HTTP/HTTPS协议(请求响应模型、状态码)
本文简要介绍了HTTP与HTTPS协议的基础知识。HTTP是一种无状态的超文本传输协议,基于TCP/IP,常用80端口,通过请求-响应模型实现客户端与服务器间的通信;HTTPS为HTTP的安全版本,基于SSL/TLS加密技术,使用443端口,确保数据传输的安全性。文中还详细描述了HTTP请求方法(如GET、POST)、请求与响应头字段、状态码分类及意义,并对比了两者在请求-响应模型中的安全性差异。
964 20
|
11月前
|
SQL 安全 测试技术
2025接口测试全攻略:高并发、安全防护与六大工具实战指南
本文探讨高并发稳定性验证、安全防护实战及六大工具(Postman、RunnerGo、Apipost、JMeter、SoapUI、Fiddler)选型指南,助力构建未来接口测试体系。接口测试旨在验证数据传输、参数合法性、错误处理能力及性能安全性,其重要性体现在早期发现问题、保障系统稳定和支撑持续集成。常用方法包括功能、性能、安全性及兼容性测试,典型场景涵盖前后端分离开发、第三方服务集成与数据一致性检查。选择合适的工具需综合考虑需求与团队协作等因素。
1686 24
|
10月前
|
安全 网络协议 算法
HTTP/HTTPS与SOCKS5协议在隧道代理中的兼容性设计解析
本文系统探讨了构建企业级双协议隧道代理系统的挑战与实现。首先对比HTTP/HTTPS和SOCKS5协议特性,分析其在工作模型、连接管理和加密方式上的差异。接着提出兼容性架构设计,包括双协议接入层与统一隧道内核,通过协议识别模块和分层设计实现高效转换。关键技术部分深入解析协议转换引擎、连接管理策略及加密传输方案,并从性能优化、安全增强到典型应用场景全面展开。最后指出未来发展趋势将更高效、安全与智能。
434 1
|
11月前
|
安全 网络安全 数据安全/隐私保护
HTTP 与 HTTPS 协议及 SSL 证书解析-http和https到底有什么区别?-优雅草卓伊凡
HTTP 与 HTTPS 协议及 SSL 证书解析-http和https到底有什么区别?-优雅草卓伊凡
605 3

热门文章

最新文章