一,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)
代碼演示:

