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

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

簡介

HTTP ClientJetbrains 系列軟件中自帶的 HTTP 請求工具,不過只在 Professional 版本才有這個功能,我平時開發(fā)使用的是 Pycharm 2018.3。在 VS Code 中有相同功能的插件 REST Client. 以下的內(nèi)容全部來自 官方教程,不過是英文的,有能力可以直接看文檔,這里根據(jù)自己的理解從簡單到復(fù)雜梳理官方教程的常用功能.

創(chuàng)建請求腳本

創(chuàng)建請求腳本,跟創(chuàng)建一個 Python 文件一樣,在需要創(chuàng)建的文件夾 右擊 | New | HTTP Request 即可,一般在最下方,請求腳本是一個以 http 為擴展名的文件.

創(chuàng)建請求腳本

請求語法

創(chuàng)建好腳本以后,會有一些注釋告訴你可以使用模板快速生成請求,這里可以先忽略,下面來說請求語法.

Method Request-URI HTTP-Version
Header-field: Header-value

Request-Body

語法很簡單,就是 HTTP 請求的基本概念,按順序分別是 請求方法、請求地址、HTTP版本、請求頭、請求體. 其中 HTTP-Version 一般省略不寫,如果一定要寫,按照 HTTP/*.* 格式就好. 請求頭請求體 沒有也可以不寫,所以一個最簡單的請求應(yīng)該是這樣的:

最簡單的請求

點擊左側(cè)的 箭頭 就可以發(fā)出請求,請求的結(jié)果會輸出在下方. 在腳本中, 注釋可以用 # 或者 // 表示,如果想在一個腳本文件中編寫多個請求,可以使用 ### 進行分割.

使用生成模板

了解語法之后就可以使用新建文件時注釋中的快速生成模板了,Tab 鍵自動生成.

  • gtr[p]: 獲取 json 格式數(shù)據(jù),p 會自動生成參數(shù)
  • ptr[p]: 上傳 json 數(shù)據(jù),p 會自動生成參數(shù)
    • 上傳 json 需要在請求體編寫數(shù)據(jù),注意使用 雙引號
  • mptr | fptr: 提交一個文本或文件表單
    • 如果提交文件表單,可以使用 < filepath 指定 文件路徑, 這里使用相對路徑即可.

使用環(huán)境變量

當你在編寫請求的時候,可以使用 環(huán)境變量 將一些字段參數(shù)化,例如 使用 {{ host }} 占位符表示 主機地址,當發(fā)起請求的時候,會讓你選擇是使用 生產(chǎn)環(huán)境 還是 開發(fā)環(huán)境, 之后從選擇的環(huán)境中讀取指定字段的值.

環(huán)境變量通過名為 http-client.env.json 的配置文件完成,配置文件創(chuàng)建在請求腳本的同級目錄, 表示 環(huán)境, 表示環(huán)境變量,這里使用 development、 production 分別表示 開發(fā)環(huán)境生產(chǎn)環(huán)境,如果有多個環(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)建請求的時候就可以這樣:

GET http://{{host}}/api/json/get?id={{id-value}}&key={{unresolved_var}}
Authorization: Basic {{username}} {{password}}
Content-Type: application/json
{
    "key": {{my-var}}
}

點擊左邊箭頭執(zhí)行,就會讓你選擇是使用什么環(huán)境發(fā)送請求. 如果一個環(huán)境變量沒有找到,比如上面的 {{unresolved_var}},將會被作為 原始字符發(fā)送.

在一個請求中可以使用環(huán)境變量占位符的部分為:

  • 請求 地址、端口、路徑
  • 查詢字符串 參數(shù)
  • 請求頭
  • 請求體 或者 外部文件

官方示例

通過上面這些,已經(jīng)可以完成常用的請求發(fā)送了,官方也提供了一些示例進行參考,在 請求文件 右上角,將鼠標移過去就會顯示出來,左邊是 請求歷史右邊請求示例:

示例

總結(jié)

這里只是列了常用用法,具體細節(jié)還是要看 文檔. HTTP Client 同樣可以使用 JavaScript ECMAScript 5.1 語法處理響應(yīng),例如對請求結(jié)果進行 斷言 等,這樣就可以形成一個完整的接口測試,通過查看 響應(yīng)API 了解更多.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容