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對象,設置本機地址和占用端口,在發送請求時有要加上主機,其它代碼是一樣的