這算是第一次寫博客吧喧半,總覺得自己技術(shù)挺渣奴迅,寫不出高質(zhì)量的內(nèi)容,所以就想先介紹一些自己平時(shí)工作中經(jīng)常使用的工具挺据,希望能堅(jiān)持吧~
簡介
HTTP Client
是 Jetbrains
系列軟件中自帶的 HTTP
請(qǐng)求工具取具,不過只在 Professional
版本才有這個(gè)功能,我平時(shí)開發(fā)使用的是 Pycharm 2018.3
扁耐。在 VS Code
中有相同功能的插件 REST Client
. 以下的內(nèi)容全部來自 官方教程暇检,不過是英文的,有能力可以直接看文檔婉称,這里根據(jù)自己的理解從簡單到復(fù)雜梳理官方教程的常用功能.
創(chuàng)建請(qǐng)求腳本
創(chuàng)建請(qǐng)求腳本块仆,跟創(chuàng)建一個(gè) Python
文件一樣,在需要?jiǎng)?chuàng)建的文件夾 右擊 | New | HTTP Request
即可王暗,一般在最下方悔据,請(qǐng)求腳本是一個(gè)以 http
為擴(kuò)展名的文件.
請(qǐng)求語法
創(chuàng)建好腳本以后,會(huì)有一些注釋告訴你可以使用模板快速生成請(qǐng)求俗壹,這里可以先忽略科汗,下面來說請(qǐng)求語法.
Method Request-URI HTTP-Version
Header-field: Header-value
Request-Body
語法很簡單,就是 HTTP
請(qǐng)求的基本概念绷雏,按順序分別是 請(qǐng)求方法头滔、請(qǐng)求地址、HTTP版本涎显、請(qǐng)求頭坤检、請(qǐng)求體
. 其中 HTTP-Version
一般省略不寫,如果一定要寫棺禾,按照 HTTP/*.*
格式就好. 請(qǐng)求頭
缀蹄、請(qǐng)求體
沒有也可以不寫,所以一個(gè)最簡單的請(qǐng)求應(yīng)該是這樣的:
點(diǎn)擊左側(cè)的 箭頭
就可以發(fā)出請(qǐng)求,請(qǐng)求的結(jié)果會(huì)輸出在下方. 在腳本中, 注釋可以用 #
或者 //
表示缺前,如果想在一個(gè)腳本文件中編寫多個(gè)請(qǐng)求蛀醉,可以使用 ###
進(jìn)行分割.
使用生成模板
了解語法之后就可以使用新建文件時(shí)注釋中的快速生成模板了,Tab
鍵自動(dòng)生成.
-
gtr[p]
: 獲取json
格式數(shù)據(jù)衅码,p
會(huì)自動(dòng)生成參數(shù) -
ptr[p]
: 上傳json
數(shù)據(jù)拯刁,p
會(huì)自動(dòng)生成參數(shù)- 上傳
json
需要在請(qǐng)求體編寫數(shù)據(jù),注意使用 雙引號(hào)
- 上傳
-
mptr | fptr
: 提交一個(gè)文本或文件表單- 如果提交文件表單逝段,可以使用
< filepath
指定文件路徑
, 這里使用相對(duì)路徑即可.
- 如果提交文件表單逝段,可以使用
使用環(huán)境變量
當(dāng)你在編寫請(qǐng)求的時(shí)候垛玻,可以使用 環(huán)境變量
將一些字段參數(shù)化,例如 使用 {{ host }}
占位符表示 主機(jī)地址
奶躯,當(dāng)發(fā)起請(qǐng)求的時(shí)候帚桩,會(huì)讓你選擇是使用 生產(chǎn)環(huán)境
還是 開發(fā)環(huán)境
, 之后從選擇的環(huán)境中讀取指定字段的值.
環(huán)境變量通過名為 http-client.env.json
的配置文件完成,配置文件創(chuàng)建在請(qǐng)求腳本的同級(jí)目錄嘹黔,鍵
表示 環(huán)境
账嚎,值
表示環(huán)境變量,這里使用 development
儡蔓、 production
分別表示 開發(fā)環(huán)境
和 生產(chǎn)環(huán)境
郭蕉,如果有多個(gè)環(huán)境,直接增加 鍵
即可喂江,示例如下:
{
"development": {
"host": "localhost",
"id-value": 12345,
"username": "dev_username",
"password": "dev_password",
"my-var": "my-dev-value"
},
"production": {
"host": "example.com",
"id-value": 6789,
"username": "pro_username",
"password": "pro_password",
"my-var": "my-prod-value"
}
}
構(gòu)建請(qǐng)求的時(shí)候就可以這樣:
GET http://{{host}}/api/json/get?id={{id-value}}&key={{unresolved_var}}
Authorization: Basic {{username}} {{password}}
Content-Type: application/json
{
"key": {{my-var}}
}
點(diǎn)擊左邊箭頭執(zhí)行召锈,就會(huì)讓你選擇是使用什么環(huán)境發(fā)送請(qǐng)求. 如果一個(gè)環(huán)境變量沒有找到,比如上面的 {{unresolved_var}}
获询,將會(huì)被作為 原始字符
發(fā)送.
在一個(gè)請(qǐng)求中可以使用環(huán)境變量占位符的部分為:
- 請(qǐng)求
地址
涨岁、端口
、路徑
- 查詢字符串
參數(shù)
或值
請(qǐng)求頭
-
請(qǐng)求體
或者外部文件
官方示例
通過上面這些筐付,已經(jīng)可以完成常用的請(qǐng)求發(fā)送了卵惦,官方也提供了一些示例進(jìn)行參考,在 請(qǐng)求文件
右上角瓦戚,將鼠標(biāo)移過去就會(huì)顯示出來沮尿,左邊是 請(qǐng)求歷史
,右邊
是 請(qǐng)求示例
:
總結(jié)
這里只是列了常用用法较解,具體細(xì)節(jié)還是要看 文檔. HTTP Client
同樣可以使用 JavaScript ECMAScript 5.1
語法處理響應(yīng)畜疾,例如對(duì)請(qǐng)求結(jié)果進(jìn)行 斷言
等,這樣就可以形成一個(gè)完整的接口測(cè)試印衔,通過查看 響應(yīng)API 了解更多.