requests介面測試-post請求
阿新 • • 發佈:2020-08-14
一,post請求
1.1 post常用的提交方式:
Post提交方式 | 描述 | 備註 |
---|---|---|
application/json | JSON資料格式 | |
application/x-www-form-urlencoded | form表單如果不設定enctype 屬性,預設以application/x-www-form-urlencoded方式提交 | key/value格式 |
multipart/form-data | 在表單中進行檔案上傳時,需要使用該格式,form表單中的enctype需要設定為multipart/form-data | 需要安裝第三方包requests-toolbelt |
1.2 requests.post()常用請求方式
預設情況下,通過requests.post()進行POST請求時,引數有data和json兩種方式。常見的form表單使用data引數提交報文,data引數可以是字串,列表,字典或者檔案物件。data引數為字串時,如data=json.dumps(payload),headers中Content-Type預設為'text/html; charset=UTF-8',建議Content-Type設定為application/x-www-form-urlencoded。如果post請求體是json格式,可以直接傳json引數,傳json引數時會將請求中的Content-Type更改為application/json。
二,data格式傳參
抓包
登入聚合網站首頁,按F12調出開發工具,輸入賬號和密碼,點選登入,抓取登入介面的請求,檢視請求URL地址和請求引數,如圖:
程式碼
""" 介面名稱:聚合資料網站登入介面 目標:掌握post請求兩種方式data和json 介面URL:https://www.juhe.cn/login/login 請求方法:post 請求引數:username password """ import requests #第一種表單格式Content-Type: application/x-www-form-urlencoded; url="https://www.juhe.cn/login/login" data={ "username":182xxxxxxxx, "password": "xxxxxxx" } r=requests.post(url,data=data,verify=False) print(r.text) print(r.status_code)
程式碼演示:
三,json格式傳參
"""
介面名稱:httpbin post介面
目標:掌握post請求兩種方式data和json
介面URL:https://httpbin.org/post
請求方法:post
請求引數:username,password
"""
import requests
#第二種json格式Content-Type: application/json;
url="https://httpbin.org/post"
payload={
'username':'python',
'password': 123456
}
#忽略警告資訊
requests.packages.urllib3.disable_warnings()
#傳送請求,json引數會自動將字典型別的物件轉換為json格式
r=requests.post(url,json=payload,verify=False)
#列印正文資訊
print(r.text)
#列印返回碼
print(r.status_code)
#列印請求頭
print(r.headers)