intellj idea提供了強大的工具集合,其中自然包括HTTP客戶端。雖然post man等第三方http客戶端提供了強大的功能,但是intellj idea的優勢在于免費與方便。
1)可視化形式
通過idea的http客戶端創建http請求也很方便,如下,Tools->HTTP Client->Test RESTful Web Service:
image.png
創建出一個可視化的http請求窗口:
image.png
不過,這種可視化形式的窗口已經不被建議使用了,轉而建議使用文件形式的。
2)文件形式
文件形式的http請求使用起來也很簡單,在任意目錄創建一個.http
后綴的文件即可。
idea也提供了非常人性化的教程,鼠標焦點移動到.http文件
內,右上角出現的兩個圖標,其中一個是http請求歷史記錄,另一個就是不同類型的http請求集合。隨便打開一個就可以依葫蘆畫瓢自定義自己的http請求了:
image.png
請求百度首頁:
image.png
GET http://www.baidu.com
Accept: application/json
###
點擊左邊的三角形即可執行。
當然還有更多復雜的post請求,參數,斷言結果之類的豐富功能,參考提供的示例即可。
3)快捷鍵
idea提供了快捷鍵來簡化以上的手輸http請求,有以下一些:
-
gtr
:創建普通GET請求,通過tab鍵一步步自定義信息
GET http://localhost:80/api/item
Accept: application/json
###
-
gtrp
: 與gtr相比,多了一個參數位置
GET http://localhost:80/api/item?id=99
Accept: application/json
###
-
ptr
:創建普通POST請求, json格式請求參數
POST http://localhost:80/api/item
Content-Type: application/json
{}
###
-
ptrp
:同上,請求參數為kv格式
POST http://localhost:80/api/item
Content-Type: application/x-www-form-urlencoded
id=99&content=new-element
###
-
mptr
: 復雜類型POST請求
POST http://localhost:80/api/item
Content-Type: multipart/form-data; boundary=WebAppBoundary
--WebAppBoundary
Content-Disposition: form-data; name="field-name"
field-value
--WebAppBoundary--
###
-
fptr
:文件上傳
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--
###
4)環境變量&引用
idea提供變量機制,變量以json格式,固定存儲在以下兩個文件中:
- http-client.env.json
- http-client.private.env.json
結構為:
{
"product": {
"var": "bar"
},
"test": {
"var": "foo"
}
}
外層是環境名稱,內層是變量名稱;這兩個文件可以任意位置。在運行時,會提示使用哪個環境運行http請求:
使用時,通過{{}}
引用即可,示例:
http-client.env.json
{
"dev":{
"bar": "bar-val"
}
}
test.http
GET http://www.baidu.com/{{bar}}
Accept: application/json
###
運行時:
image.png
可以看到可以使用定義的環境,來運行http請求:
image.png