使用 Pycharm 發送 HTTP 請求

簡介

HTTP ClientJetbrains 系列軟件中自帶的 HTTP 請求工具,不過只在 Professional 版本纔有這個功能,我平時開發使用的是 Pycharm 2018.3。在 VS Code 中有相同功能的插件 REST Client. 如下的內容所有來自 官方教程,不過是英文的,有能力能夠直接看文檔,這裏根據本身的理解從簡單到複雜梳理官方教程的經常使用功能.html

建立請求腳本

建立請求腳本,跟建立一個 Python 文件同樣,在須要建立的文件夾 右擊 | New | HTTP Request 便可,通常在最下方,請求腳本是一個以 http 爲擴展名的文件.web

建立請求腳本

請求語法

建立好腳本之後,會有一些註釋告訴你可使用模板快速生成請求,這裏能夠先忽略,下面來講請求語法.json

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

Request-Body
複製代碼

語法很簡單,就是 HTTP 請求的基本概念,按順序分別是 請求方法、請求地址、HTTP版本、請求頭、請求體. 其中 HTTP-Version 通常省略不寫,若是必定要寫,按照 HTTP/*.* 格式就好. 請求頭請求體 沒有也能夠不寫,因此一個最簡單的請求應該是這樣的:api

最簡單的請求

點擊左側的 箭頭 就能夠發出請求,請求的結果會輸出在下方. 在腳本中, 註釋能夠用 # 或者 // 表示,若是想在一個腳本文件中編寫多個請求,可使用 ### 進行分割.restful

使用生成模板

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

  • gtr[p]: 獲取 json 格式數據,p 會自動生成參數
  • ptr[p]: 上傳 json 數據,p 會自動生成參數
    • 上傳 json 須要在請求體編寫數據,注意使用 雙引號
  • mptr | fptr: 提交一個文本或文件表單
    • 若是提交文件表單,可使用 < filepath 指定 文件路徑, 這裏使用相對路徑便可.

使用環境變量

當你在編寫請求的時候,可使用 環境變量 將一些字段參數化,例如 使用 {{ host }} 佔位符表示 主機地址,當發起請求的時候,會讓你選擇是使用 生產環境 仍是 開發環境, 以後從選擇的環境中讀取指定字段的值.工具

環境變量經過名爲 http-client.env.json 的配置文件完成,配置文件建立在請求腳本的同級目錄, 表示 環境 表示環境變量,這裏使用 developmentproduction 分別表示 開發環境生產環境,若是有多個環境,直接增長 便可,示例以下:測試

{
    "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"
    }
}
複製代碼

構建請求的時候就能夠這樣:spa

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

點擊左邊箭頭執行,就會讓你選擇是使用什麼環境發送請求. 若是一個環境變量沒有找到,好比上面的 {{unresolved_var}},將會被做爲 原始字符發送.插件

在一個請求中可使用環境變量佔位符的部分爲:

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

官方示例

經過上面這些,已經能夠完成經常使用的請求發送了,官方也提供了一些示例進行參考,在 請求文件 右上角,將鼠標移過去就會顯示出來,左邊是 請求歷史右邊請求示例:

示例

總結

這裏只是列了經常使用用法,具體細節仍是要看 文檔. HTTP Client 一樣可使用 JavaScript ECMAScript 5.1 語法處理響應,例如對請求結果進行 斷言 等,這樣就能夠造成一個完整的接口測試,經過查看 響應API 瞭解更多.

相關文章
相關標籤/搜索