前言
只有光頭才能變強。
文本已收錄至我的GitHub精選文章,歡迎Star:https://github.com/ZhongFuCheng3y/3y
相信大家都用過POSTMAN
吧,后端在開發的時候寫完接口總得去自測調用一下,看符不符合自己的預期。
因為我們的接口可能會有很多參數或者我們的參數是json
格式的(等等原因),直接用瀏覽器去請求不太方便,而且使用瀏覽器去請求也不能復用(沒有保存的功能)。
所以我們常常會用一些別的軟件(插件),而POSTMAN
就是這里邊最出名的。
這篇文章不是在介紹POSTMAN
,而是我們Java程序員最喜歡的IDEA,它也能做到POSTMAN
的功能,而且我覺得更加好用(見仁見智,勿噴)。
小插曲
在前幾天換了MacBookPro,自然就需要把在Windows上的hosts配置的東西搬移到MacBookPro上
於是我就把Windows上的hosts通過QQ復制到我的gas mask(Mac 上管理hosts的一個軟件,我覺得挺好用的)
於是我就很歡快愉悅地就將這些配置復制到gas mask。復制完了以后,我去訪問自己的預發環境也是成功了(我這邊一般預發環境都要配置hosts才能訪問)。
但是等我用POSTMAN
和IDEA自帶的HTTP Clint
去測試我自己接口的時候,一直都404
了,我非常不明白為什么404
了
- 明明我自己的機器從瀏覽器直接訪問預發環境是沒問題的啊
- 我將相同的URL放在Windows上是可以訪問的,放在Mac上就訪問不了
- 好奇怪啊....
於是我就喊來了我的小伙伴幫我看看什么情況(我沒遇到過這種問題),小伙伴也給我分析起來了(搞着搞着就一群小伙伴都圍着我看這問題了)
- 檢查一下我的gas mask配置有沒有問題
----
沒看出有問題 - 檢查一下我的綁定有沒有相同的域名
----
沒看出有問題 - 檢查一下本機的hosts文件有沒有問題(注:我這里是在圖文上看的。快捷鍵:
option+command+空格
,然后command+shift+g
,輸入/etc/hosts
查看文件----
沒看出有問題 ping
一下域名----
發現能ping通,但不是我綁定的ip- 懷疑DNS污染,去搜了幾條命令刷新DNS
----
無果 - 此時有個聲音:“是不是你的hosts文件有特殊的字符啊?“,我熟練地在
iTerm2
輸入sudo vim /etc/hosts
,一看,好多的特殊字符。----
問題解決,復制的時候存在特殊字符。哎喲。
簡單介紹HTTP Client
注:環境:IDEA 2019.3
上面也講到了,IDEA已經自帶了類似POSTMAN
的工具給我們使用了,如果它足夠好用,我就不用去下載POSTMAN
了。
首先,我們來找到它的入口:
在Tools->HTTP Client->Test RESTful Web Service
,不會很難找
點開以后我們可以在底部發現REST Client
:
從界面上的小字,我們可以看出:IDEA
是不推薦我們使用REST Client
了,不妨讓我們去使用new HTTP Client
。從REST Client
的風格我們可以看出跟POSTMAN
沒什么大的區別(從功能上長得差不多)
點擊藍字,我們跳到IDEA
推薦用的new HTTP Client
,可以發現這個界面:
我對這種用寫的方式還是挺喜歡的(個人)。我們嘗試一下右邊的幾個鏈接就可以快速入門。
首先是Add Request
,從英文上我們已經可以得出這是增加一個常見的請求模板(供你選擇)
我們隨便點一個試試,看一下是怎么樣的:
然后我們可以點擊Examples
鏈接,看一下它的功能:
我們可以查看到各種的示例,非常方便我們去入門:
更好用的是,我們可以定義變量(不同的環境使用不同的變量),我們可以定義http-client.env.json
,里邊寫一些通用變量相關的值。然后我們在.http
文件下就可以引用:
//http-client.env.json 樣式
{
"dev": {
"baseUrl": "http://gateway.xxx.cn/",
"username": "",
"password": ""
},
"pre": {
"baseUrl": "http://localhsot:8888/",
"username": "",
"password": ""
}
}
在.http
文件中使用{{condition}}就可以引用到我們公用的環境變量了:
GET {{baseUrl}}/api/item?id=99
Accept: application/json
在執行的時候我們就可以選擇不同的環境執行:
最后
我們可以發現的是,IDEA給我們以文件的方式就能構建自己的接口,這說明我們可以將文件上傳到Git
上,方便多人協作。
可以通過配置來幫我們快速切換對應的環境(變量),只要寫一次的請求體,就可以用作於多個環境。
通過官方給的Examples我們也可以快速去了解如何使用,沒有什么學習成本。
還有一些高級的功能....我就不說了(因為我也不懂),大家可以有興趣可以去看一下。
參考資料:
- https://github.com/corningsun/yuchigong/blob/httpClient/httpClient/README.md
- https://segmentfault.com/a/1190000021118350?utm_source=tag-newest
當我寫下這篇文章的時候,敖丙和雞蛋都說:”POSTMAN才是世界上最好用的工具,三歪沒有格局。等他發文章的時候我要舉報他“
注:我不是一個深度使用POSTMAN的人,現在HTTP Client對我來說已經足夠使用了。
本已收錄至我的GitHub精選文章,歡迎Star:https://github.com/ZhongFuCheng3y/3y
樂於輸出干貨的Java技術公眾號:Java3y。公眾號內有300多篇原創技術文章、海量視頻資源、精美腦圖,關注即可獲取!
非常感謝人才們能看到這里,如果這個文章寫得還不錯,覺得「三歪」我有點東西的話 求點贊 求關注️ 求分享👥 求留言💬 對暖男我來說真的 非常有用!!!
創作不易,各位的支持和認可,就是我創作的最大動力,我們下篇文章見!