- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) >
- 詳解IntelliJ IDEA 自帶的 HTTP Client 接口調用插件吊
Java公眾號【Java技術(shù)迷】一個(gè)在互聯(lián)網(wǎng)領(lǐng)先地位,微信搜索【Java技術(shù)迷】第一時(shí)間閱讀最新文章,通過(guò)下面下載鏈接,即可獲得我精心整理的技術(shù)資料,電子書(shū)籍,一線(xiàn)大廠(chǎng)面試資料和優(yōu)秀簡(jiǎn)歷模板。
當我們在開(kāi)發(fā)調試 Web 服務(wù)的時(shí)候,需要對接口進(jìn)行調用測試;或者對接第三方系統時(shí),需要調用遠程第三方的接口進(jìn)行聯(lián)調。這時(shí),相信大家首選的工具一般會(huì )是 Postman
,一款當今比較流行而且功能齊全的接口調用調試工具。如下所示:
不過(guò)我們一般使用 IntelliJ IDEA
代碼編輯器來(lái)開(kāi)發(fā)和調試 Web 服務(wù),如果使用 Postman 工具來(lái)測試接口,不僅要在電腦上安裝 Postman ,還需要在不同工具之間切換,比較麻煩。幸運地的是 IDEA 自帶了一款簡(jiǎn)潔輕量級的接口調用插件,HTTP Client
。
HTTP Client 是 IDEA 自帶的一款簡(jiǎn)潔輕量級的接口調用插件,通過(guò)它,我們能在 IDEA 上開(kāi)發(fā),調試,測試
RESTful Web 服務(wù)
。
注意:確保 HTTP Client 插件是安裝啟動(dòng)的,默認是已安裝啟動(dòng)的。若沒(méi)有安裝,在 File - Settings - Plugins 路徑下進(jìn)行安裝,如下:
可以創(chuàng )建2種文件類(lèi)型的 HTTP Client 文件,一種是臨時(shí)文件(scratch files,不跟項目工程掛鉤),一種是非臨時(shí)文件(physical files,跟項目工程掛鉤)。
如果你想創(chuàng )建的 HTTP Client 文件是為了臨時(shí)調用接口測試用的,不需要保留記錄供以后使用,則可以使用臨時(shí)文件;如果想存檔記錄請求參數,請求結果等,后續再繼續使用,或者隨項目提交到遠程git倉庫,則建議使用非臨時(shí)文件。
創(chuàng )建 HTTP Client 臨時(shí)文件
打開(kāi)后,顯示界面和Postman差不多,不過(guò)這種風(fēng)格的界面被棄用了,官方不推薦我們使用,在最新版本的 IDEA 中已經(jīng)沒(méi)有這個(gè)界面了。
官方推薦我們使用編碼式的風(fēng)格界面,點(diǎn)擊上個(gè)界面頂部的 Convert request to the new format
,即可打開(kāi)新的 HTTP Client 界面。
創(chuàng )建 HTTP Client 非臨時(shí)文件
可以在項目根目錄下創(chuàng )建一個(gè)存儲請求文件的文件夾,然后在里面創(chuàng )建 HTTP Client 請求文件,如下:
HTTP 請求存儲在以.http
或.rest
為后綴的文件中,并且帶有 API
小圖標。
請求文件可以包含多個(gè)請求,多個(gè)請求中間用3個(gè)井號 ###
隔開(kāi);如果是臨時(shí)文件,每次執行請求后,會(huì )在請求下方生成對應請求結果的文件鏈接,按住 Ctrl + 鼠標左鍵
可以打開(kāi)。
所有的請求結果,請求歷史記錄,cookies等信息會(huì )存放在 .idea
文件夾下,如下:
使用右上角的快捷按鈕創(chuàng )建請求,可以選擇不同方式的請求,如下:
使用快捷鍵進(jìn)行創(chuàng )建請求,例如輸入 gtr
可以快速創(chuàng )建一個(gè)簡(jiǎn)單的 GET 請求,如下:
使用 Ctrl + J
快捷鍵可以查看創(chuàng )建 HTTP 請求的所有快捷鍵,如下:
通過(guò) cURL
創(chuàng )建請求,點(diǎn)擊右上角的 Convert form cURL
按鈕,然后輸入 cURL 地址即可自動(dòng)轉換,如下:
GET
### GET request with a header GET https://httpbin.org/ip Accept: application/json ### GET request with parameter GET https://httpbin.org/get?show_env=1 Accept: application/json ### GET request with environment variables GET {{host}}/get?show_env={{show_env}} Accept: application/json ### GET request with disabled redirects # @no-redirect GET http://httpbin.org/status/301 ### GET request with dynamic variables GET http://httpbin.org/anything?id={{$uuid}}&ts={{$timestamp}} ###
POST
### Send POST request with json body POST https://httpbin.org/post Content-Type: application/json { "id": 999, "value": "content" } ### Send POST request with body as parameters POST https://httpbin.org/post Content-Type: application/x-www-form-urlencoded id=999&value=content ### Send a form with the text and file fields POST https://httpbin.org/post Content-Type: multipart/form-data; boundary=WebAppBoundary --WebAppBoundary Content-Disposition: form-data; name="element-name" Content-Type: text/plain Name --WebAppBoundary Content-Disposition: form-data; name="data"; filename="data.json" Content-Type: application/json < ./request-form-data.json --WebAppBoundary-- ### Send request with dynamic variables in request's body POST https://httpbin.org/post Content-Type: application/json { "id": {{$uuid}}, "price": {{$randomInt}}, "ts": {{$timestamp}}, "value": "content" } ###
PUT
PUT http://localhost:8080/person/put Content-Type: application/json {"name": "陳皮","age": 17}
PATCH
### PATCH http://localhost:8080/person/put Content-Type: application/json {"name": "陳皮","age": 17}
鑒權方式
### Basic authorization. GET https://httpbin.org/basic-auth/user/passwd Authorization: Basic user passwd ### Basic authorization with variables. GET https://httpbin.org/basic-auth/user/passwd Authorization: Basic {{username}} {{password}} ### Digest authorization. GET https://httpbin.org/digest-auth/realm/user/passwd Authorization: Digest user passwd ### Digest authorization with variables. GET https://httpbin.org/digest-auth/realm/user/passwd Authorization: Digest {{username}} {{password}} ### Authorization by token, part 1. Retrieve and save token. POST https://httpbin.org/post Content-Type: application/json { "token": "my-secret-token" } > {% client.global.set("auth_token", response.body.json.token); %} ### Authorization by token, part 2. Use token to authorize. GET https://httpbin.org/headers Authorization: Bearer {{auth_token}} ###
斷言方式
### Successful test: check response status is 200 GET https://httpbin.org/status/200 > {% client.test("Request executed successfully", function() { client.assert(response.status === 200, "Response status is not 200"); }); %} ### Failed test: check response status is 200 GET https://httpbin.org/status/404 > {% client.test("Request executed successfully", function() { client.assert(response.status === 200, "Response status is not 200"); }); %} ### Check response status and content-type GET https://httpbin.org/get > {% client.test("Request executed successfully", function() { client.assert(response.status === 200, "Response status is not 200"); }); client.test("Response content-type is json", function() { var type = response.contentType.mimeType; client.assert(type === "application/json", "Expected 'application/json' but received '" + type + "'"); }); %} ### Check response body GET https://httpbin.org/get > {% client.test("Headers option exists", function() { client.assert(response.body.hasOwnProperty("headers"), "Cannot find 'headers' option in response"); }); %} ###
以上就是IntelliJ IDEA 自帶的 HTTP Client 接口調用插件吊打 Postman的詳細內容,更多關(guān)于idea HTTP Client插件的資料請關(guān)注腳本之家其它相關(guān)文章!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系QQ:712375056 進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。
Copyright ? 2009-2021 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 珠海市特網(wǎng)科技有限公司 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站