如何用java对接口发送请求_7. 用Java做接口测试1-发送HTTP请求和接收HTTP响应
前面的文章介绍了使用Postman、Fiddler做接口测试,现在咱们进入代码阶段。我会使用Java做示例,讲解如何使用Java做接口自动化测试。所以,这一部分需要一些Java代码基础,需要掌握java的代码结构、类、对象、接口、List、Map、多态等,这些内容不会在我的文章里展开,愿意跟着我继续深入的童鞋,建议抽时间自己学习一下Java基础(特别是我上面提到的点)。
言归正传,之前提到做接口测试,无非就如下3步,使用Java做也一样。
构造一条符合要求的HTTP请求消息;
发给我,我给你回响应;
你读取HTTP响应,检查响应内容是否正确
仍然使用老例子,我提供加法计算的接口,你要给我传递2个数(a和b),我给你返回一个结果。
请求报文可能是:
POST http://192.168.27.184:8081/add HTTP/1.1Host: 192.168.98.178:8081Connection: keep-aliveHost: 192.168.98.178:8081Connection: keep-aliveContent-Type: application/x-www-form-urlencoded; charset=UTF-8Accept-Encoding: gzip,deflatea=1&b=2
响应报文可能是:
HTTP/1.1 200 OKServer: Apache-Coyote/1.1Cache-Control: no-cacheContent-Type: application/json;charset=UTF-8Transfer-Encoding: chunked{"sum":3}
如何使用Java发送和接收HTTP消息
AddTest.java文件如下,该代码引用了另外两个文件:HttpRequester.java和HttpRespons.java。这里不对代码进行解读,代码逻辑非常简单,非常容易懂。
import java.io.IOException;import java.util.HashMap;public class AddTest {public static void main(String[] args) {//url
String url = "http://192.168.27.172:8081/add";
//参数
HashMap params = new HashMap();
params.put("a", "1");
params.put("b", "2");
//头部
HashMap headers = new HashMap();
//响应
HttpRespons hr = new HttpRespons();
//请求
HttpRequester request = new HttpRequester();
try {//发送post请求,拿到响应
hr = request.sendPost(url, params,headers);
} catch (IOException e) {
e.printStackTrace();
}
//打印响应内容
System.out.println(hr.getContent());
}
}
运行这个Java类以后,可以看到响应如下:
小结
今天讲了最基础的使用Java发送和接收HTTP消息,至此,你已经可以用代码做最基本的接口测试了,只是对响应内容的检查需要你手工来检查,后续的文章会写如何用代码来做检查。
如何用java对接口发送请求_7. 用Java做接口测试1-发送HTTP请求和接收HTTP响应相关推荐
- html post 图片,如何发送图片作为多部分POST请求的一部分 - Java HtmlUnit
我正尝试使用Java将验证码提交给decaptcher.com. Decaptcher并没有很好的解释如何使用他们的API,所以我想弄清楚如何使用HTTP POST请求来提交验证码.下面是示例代码,我 ...
- java json发送文件_关于java:REST API设计在同一请求中将JSON数据和文件发送到api...
我正在现有应用程序之上创建一个RESTAPI.其中一个特性接受JSON数据以及用户上传的文件. 我不确定如何将同一请求中的文件和JSON数据发送到RESTAPI? 我让JSON部件工作,并使用curl ...
- java 防止url重复请求_Web项目如何防止客户端重复发送请求
在Web项目中,有一些请求或操作会对数据产生影响(比如新增.删除.更新),针对这类请求一般都需要做一些保护,以防止用户有意或无意的重复发起这样的请求导致的数据错乱. 本文总结了一些防止客户端重复发送请 ...
- JAVA解决OPTIONS请求问题:跨域时ajax发送两次请求,其中options预请求参数为null及其解决方案
转载请注明出处 原文链接:https://blog.csdn.net/qq_39309348/article/details/103267908 在正式跨域的请求前,浏览器会根据需要,发起一个&quo ...
- 如何用CropBox实现头像裁剪并与java后台交互
如何用CropBox实现头像裁剪并与java后台交互 参考网站:https://developer.mozilla.org/zh-CN/docs/Web/API/Blob 参考: http://blo ...
- java短信验证平台_JAVA实现利用第三方平台发送短信验证码
前段时间自己做的一个小项目中,涉及到用短信验证码登录.注册的问题,之前没涉及过这一块,看了别人的博客其实也是似懂非懂的,现在就将自己做的利用第三方短信平台来发送验证码这个功能记下来. 本文以注册为例, ...
- java url json字符串_使用HttpClient将URL中的JSON查询字符串发送到Web服务(Java)
我有一个我建立的Web服务...我现在要做的是发送一个简单的请求,其中包含一个从Tapestry Web应用程序到该Web服务的json查询字符串.我四处搜索,大多数人都说使用Apache HttpC ...
- 优雅地处理重复请求(并发请求)——附Java实现
点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 来源:jaskey.github.io/blog/2020 ...
- 内网java发送邮件_基于JavaMail的Java邮件发送:简单邮件发送
电子邮件的应用非常广泛,例如在某网站注册了一个账户,自动发送一封欢迎邮件,通过邮件找回密码,自动批量发送活动信息等.但这些应用不可能和我们自己平时发邮件一样,先打开浏览器,登录邮箱,创建邮件再发送.本 ...
最新文章
- Selenium如何通过location和size定位元素坐标?
- MySQL单机多实例-主主复制
- exchange之2003迁移至2007
- Spring MVC 中使用 Google kaptcha 验证码
- 程序员如何优雅地使用 Mac? - OS X - 知乎
- 【数据竞赛】CV赛题总结:人民币面值与编码识别
- Linux实现的IEEE 802.q VLAN
- Oracle的SQL基础之查询(简单查询)
- 语音识别怎么最终识别出字?
- Multisim 10 添加可调电阻
- linux内核声卡管理,linux下声卡驱动简介
- VS Code设置插件默认安装路径
- echarts 图例 两行展示
- scp 命令简明介绍
- Python Pygame制作简单五子棋游戏(详细代码+解释)
- 第一个帖子,先灌灌水
- 弹出框PopuoWindow
- 【论文review+总结】屏幕内容图像质量评估SC-IQA(Screen Content Image Quality Assessment)
- Mediapipe人脸关键点检测
- ruby 中叹号问号的作用
热门文章
- 2_C语言中的数据类型 (四)整数与无符号数
- Kafka的配置文件详细描述
- 关于liaoxuefeng的python3教程实战第四天
- ORA-00304: requested INSTANCE_NUMBER is busy
- 单域MPLS ***数据转发实验分析
- 利用Asp.net MVC处理文件的上传下载
- 转发程序无法决定链接类型
- php返回101,PHP 101:变量与函数
- 常用Oracle分析函数详解
- python的基本语术_一起学python-彻底掌握专业术语“变量”的概念