HTTP Client: 在 Pycharm 中直接發(fā)送 HTTP 請(qǐng)求

這算是第一次寫博客吧喧半,總覺得自己技術(shù)挺渣奴迅,寫不出高質(zhì)量的內(nèi)容,所以就想先介紹一些自己平時(shí)工作中經(jīng)常使用的工具挺据,希望能堅(jiān)持吧~

簡介

HTTP ClientJetbrains 系列軟件中自帶的 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ò)展名的文件.

創(chuàng)建請(qǐng)求腳本

請(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)該是這樣的:

最簡單的請(qǐ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 了解更多.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末啡捶,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子奸焙,更是在濱河造成了極大的恐慌瞎暑,老刑警劉巖彤敛,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異了赌,居然都是意外死亡墨榄,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門勿她,熙熙樓的掌柜王于貴愁眉苦臉地迎上來袄秩,“玉大人,你說我怎么就攤上這事逢并≈纾” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵砍聊,是天一觀的道長背稼。 經(jīng)常有香客問我,道長辩恼,這世上最難降的妖魔是什么雇庙? 我笑而不...
    開封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮灶伊,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘寒跳。我一直安慰自己聘萨,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開白布童太。 她就那樣靜靜地躺著米辐,像睡著了一般。 火紅的嫁衣襯著肌膚如雪书释。 梳的紋絲不亂的頭發(fā)上翘贮,一...
    開封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音爆惧,去河邊找鬼狸页。 笑死,一個(gè)胖子當(dāng)著我的面吹牛扯再,可吹牛的內(nèi)容都是我干的芍耘。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼熄阻,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼斋竞!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起秃殉,我...
    開封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤坝初,失蹤者是張志新(化名)和其女友劉穎浸剩,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鳄袍,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡乒省,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了畦木。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片袖扛。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖十籍,靈堂內(nèi)的尸體忽然破棺而出蛆封,到底是詐尸還是另有隱情,我是刑警寧澤勾栗,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布惨篱,位于F島的核電站,受9級(jí)特大地震影響围俘,放射性物質(zhì)發(fā)生泄漏砸讳。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一界牡、第九天 我趴在偏房一處隱蔽的房頂上張望簿寂。 院中可真熱鬧,春花似錦宿亡、人聲如沸常遂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽克胳。三九已至,卻和暖如春圈匆,著一層夾襖步出監(jiān)牢的瞬間漠另,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來泰國打工跃赚, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留笆搓,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓来累,卻偏偏與公主長得像砚作,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子嘹锁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344