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对象,设置本机地址和占用端口,在发送请求时有要加上主机,其它代码是一样的

原文地址:https://www.cnblogs.com/wanshuang/p/12501054.html