1. 簡介
? IDEA本身是提供測試接口工具的, rest-client/http client戴差,功能很強大送爸,在我日常使用中,完全可以做到不需要打開 postman 的程度暖释。 入口如下:
<center>圖一 打開方式</center>
? 點擊 Test RESTful Web Service 是打開 Rest Client 工具袭厂,可以理解為一個使用了IDEAUI的接口測試工具,相對比較可視化球匕,直接在上面根據(jù)實際需求填充值即可纹磺,再點左上角的按鈕啟動測試。
<center>圖二 rest client</center>
? 圖一選項中的第二個選項 Open Http Requests Collection 才是 今天的重點亮曹,可以直接通過 .http 后綴的文件來請求接口橄杨。除了在工具欄進去秘症,也可以在任何地方自己 new 一個出來(圖4),或者點擊圖二中黃色底的 Convert request to the new format 式矫,也會在 Scratches and consoles 下的 Scratches文件夾 生成一個 .http文件(圖五)
<center>圖三 http client</center>
<center> 圖四</center>
<center>圖五 </center>
2. http client
? 下面主要講一下 http client 的使用乡摹,簡單理解就是 http請求的參數(shù),都可以在這里自行定義采转。
? 剛剛進入文件會給你一個例子,第一行很容易理解聪廉,選擇請求方式(GET、POST故慈、PUT等) 以及 請求地址板熊,這是必填項;第二行開始并不一定是要有的惯悠,不給的話就根據(jù)你的請求方式按照默認參數(shù)來給
GET http://localhost:8080/resources
Accept: */*
Cache-Control: no-cache
2.1 普通請求
? 請求成功之后會在在下方控制臺顯示請求的內(nèi)容邻邮,以及結(jié)果竣况,并在 .http 文件的對應(yīng)請求下方留有一條歷史記錄克婶,方便查看(如圖六)
?<center>圖六 http client運行效果</center>
2.2 變量請求
? 系統(tǒng)經(jīng)常會部署在不同的環(huán)境之中,http client 同時也支持根據(jù)不同的環(huán)境修改參數(shù)丹泉,支持的參數(shù)有:
- 請求ip情萤,端口和路徑
- 查詢參數(shù)或值
- 請求頭的值
- 在外部文件為請求體提供任意值
? 支持的環(huán)境變量定義文件有具體的命名方式,并且需要跟 .http文件在同一目錄下(Scratches and consoles文件夾下面的只能普通請求)摹恨,命名也有要求筋岛,需要是下面的其中之一:
- rest-client.env.json
- http-client.env.json
- rest-client.private.env.json
- http-client.private.en.json
? 上述文件中帶private的文件不表示是一個私人的文件,可能包括密碼晒哄,令牌睁宰,證書等敏感信息,默認情況下寝凌,此文件被添加到VCS忽略文件列表中柒傻。使用如下(內(nèi)容是 Json 格式):
<center>圖七 環(huán)境變量文件設(shè)置</center>
<center>圖八 運行時選擇</center>
? 如圖七 圖八,在設(shè)置完環(huán)境變量之后運行時就可以選擇相關(guān)的環(huán)境變量傳入請求中较木,直接運行即可
3. 使用小技巧
3.1 語法
- 注釋使用
//
或者#
- 分開請求用
###
- 如果不想要生成日志
- 腳本 以
>
開頭红符,將邏輯寫在{% %}
中,可以調(diào)用client對象
<center>圖九 不記錄日志</center>
3.2 快捷鍵
快捷鍵 | 說明 |
---|---|
gtr | 生成一個get請求 |
gtrp | 生成一個get請求伐债,外加參數(shù) |
ptr | 生成一個post請求预侯,格式是application/json |
ptrt | 生成一個post請求,格式是application/x-www-form-urlencoded |
mptr | 生成一個post請求峰锁,表單提交 |
fptr | 生成一個post請求萎馅,文件上傳 |
###
# gtr
GET http://localhost:80/api/item
Accept: application/json
###
# gtrp
GET http://localhost:80/api/item?id=99
Accept: application/json
###
# prt
POST http://localhost:80/api/item
Content-Type: application/json
{}
###
#ptrp
POST http://localhost:80/api/item
Content-Type: application/x-www-form-urlencoded
id=99&content=new-element
###
# mptr
POST http://localhost:80/api/item
Content-Type: multipart/form-data; boundary=WebAppBoundary
--WebAppBoundary
Content-Disposition: form-data; name="field-name"
field-value
--WebAppBoundary--
###
# fprt
POST http://localhost:80/api/item
Content-Type: multipart/form-data; boundary=WebAppBoundary
--WebAppBoundary
Content-Disposition: form-data; name="field-name" filename="file.txt"
< ./relative/path/to/local_file.txt
--WebAppBoundary--
###
3.3 腳本
? 可以在請求中添加腳本,打印或者存儲一些信息虹蒋,可以使用腳本存儲一些結(jié)果變量糜芳,然后類似環(huán)境變量一樣的引用拣技。
<center>圖十 腳本示例</center>
? 如果使用了腳本的打印,結(jié)果控制臺會出現(xiàn)一個選項框耍目,顯示打印內(nèi)容膏斤,如下方的 Respinse Handler
3.4 多看示例
? IDEA在 .http 文件的右邊已經(jīng)給我們提供了很多例子,以及便捷操作邪驮,當自己無從下手的時候莫辨,也可以參考一下。還提供了從 cURL 轉(zhuǎn)換為 .http 文件可識別的請求功能毅访。
本文由博客一文多發(fā)平臺 OpenWrite 發(fā)布沮榜!