Java 接口自动化系列--工具类之Http请求方式封装
HttpUtils工具类的一些实现
方法中的传参先不用管,是为了后续方便需要加上的,后面介绍其它类时会依依介绍
url:请求地址,params:请求参数,isAuthorzation:定义接口是否需要鉴权,接口请求时需要判断,在实际用例调用接口时,给一个true ,意思是需要鉴权 并设置token到请求头中
请求方式的几个方法 最后的返回值都是 return body ,是为了后续需要响应内容作断言作准备
由于公司项目使用的是https请求,需要绕过证书执行接口,否则接口会报错,这里我用的是连接池的方式进行连接配置
1、get请求
此方法可以去掉方法中的params, 因为参数可能在中间,也可能在最后,不好统一处理,此时只传入url一个参数,需要该url带上规定的参数写法
添加请求头时,也可用get.setHeader();方法
2、请求地址带参数的get请求
3、post请求 ,需要设置请求头和请求参数, post请求分为json格式的请求和form形式的请求, 此只列举一个,同上面的get请求一样
4、put请求与post一样,需要设置请求头和请求参数,代码和post类似,只是HttpPost 变为HttpPut
这里要说下Delelt,由于delete请求方式继承于HttpRequestBase,没有实现setEntity的方法,因此无法设置HttpEntity对象,需要单独写一个类 模拟setEntity方法
Delete请求方法
5、封装一个方法,用于判断传入的是何种类型的请求方式
url:请求地址
reqMethod: 请求方式类型 ----->对应excel表格中“接口信息”的 “接口请求方式”
params:请求参数 ----->对应excel表格中的“用例”中的“参数”
submitType: 请求的风格类型是json还是表单form ----->对应excel表格中“接口信息”的 “接口提交类型”
isAuthorization:是否需要鉴权 ------>工具包中 鉴权类判断
language:语言头-------->用来判断每次执行使用的是什么语言
equalsIgnoreCase() 方法用于将字符串与指定的对象比较,不考虑大小写。
语法:public boolean equalsIgnoreCase(String anotherString),是java String类的一个方法
6、把json格式的参数转为get请求带参数的格式,即form请求格式
如下图,调用get方法时,传入的参数params直接赋值为json格式的,这里写这个方法专门用来把json格式转化为get请求带参数的格式,
json格式为: {"mobilephone":"13567890000","pwd":"12345678"}
带参数的get请求一般为:mobilephone=13567890000&pwd=12345678
需要在pox文件中添加json依赖,添加alibaba的fastjson
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.58</version>
</dependency>
JSONObject.parseObject------>字符串转为对象 的一个方法
补充说明,如果在请求时,需要抓包,也可以实现 , 以fiddler抓包为例,代码如下,
需要设置一个host对象,设置本机地址和占用端口,在发送请求时有要加上主机,其它代码是一样的