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

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

流柯      

目录
打赏
0
0
0
0
22
分享
相关文章
网络通讯技术:HTTP POST协议用于发送本地压缩数据到服务器的方案。
总的来说,无论你是一名网络开发者,还是普通的IT工作人员,理解并掌握POST方法的运用是非常有价值的。它就像一艘快速,稳定,安全的大船,始终为我们在网络海洋中的冒险提供了可靠的支持。
43 22
除了postman还有什么接口测试工具
最好还是使用国内的接口测试软件,其实国内替换postman的软件有很多,这里我推荐使用yunedit-post这款接口测试工具来代替postman,因为它除了接口测试功能外,在动态参数的支持、后置处理执行sql语句等支持方面做得比较好。而且还有接口分享功能,可以生成接口文档给团队在线浏览。
33 2
Socket.IO介绍,以及怎么连接测试Socket.IO接口?
Socket.IO 是一个用于浏览器和服务器间实时双向通信的库,支持低延迟消息传递、跨平台运行及自动重连。文章介绍了其特点与调试需求,并详细说明如何使用 Apifox 工具创建、连接、发送/接收 Socket.IO 事件,以及团队协作和调试技巧。掌握这些技能可提升实时应用开发效率与质量。
Python测试淘宝店铺所有商品接口的详细指南
本文详细介绍如何使用Python测试淘宝店铺商品接口,涵盖环境搭建、API接入、签名生成、请求发送、数据解析与存储、异常处理等步骤。通过具体代码示例,帮助开发者轻松获取和分析淘宝店铺商品数据,适用于电商运营、市场分析等场景。遵守法规、注意调用频率限制及数据安全,确保应用的稳定性和合法性。
微信公众号接口测试实战指南
微信公众号接口测试是确保系统稳定性和功能完整性的重要环节。本文详细介绍了测试全流程,包括准备、工具选择(如Postman、JMeter)、用例设计与执行,以及常见问题的解决方法。通过全面测试,可以提前发现潜在问题,优化用户体验,确保公众号上线后稳定运行。内容涵盖基础接口、高级接口、微信支付和数据统计接口的测试,强调了功能验证、性能优化、安全保护及用户体验的重要性。未来,随着微信生态的发展,接口测试将面临更多挑战和机遇,如小程序融合、AI应用和国际化拓展。
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
80 5
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
116 10
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
HTTP 协议浅析
通过对HTTP协议的深入了解,开发者可以更好地设计和优化Web应用,提高数据传输效率和用户体验。
142 21
Web 性能优化|了解 HTTP 协议后才能理解的预加载
本文旨在探讨和分享多种预加载技术及其在提升网站性能、优化用户体验方面的应用。
Web 性能优化|了解 HTTP 协议后才能理解的预加载
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。

热门文章

最新文章