常見的post傳遞參數的類型有以下兩種:
第一種:application/x-www-form-urlencoded,瀏覽器原生的form表單,格式如下:input1=xxx&input2=ooo
第二種:application/json ,這是常見的json格式,格式如下:{"input1":"xxx","input2":"ooo","remember":false}
1、以表單形式傳遞參數
只需簡單的傳遞一個字典給data關鍵字,在發送請求的時候,會自動編碼為表單的形式

param1={'username':'test','password':'123456'} r1=requests.post('http://host/login',data=param1) print(r1.text) print(r1.status_code) 結果: {"id":413,"username":"test","token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InRlc3QiLCJpZCI6NDEzLCJpYXQiOjE1MDczODI1MDYsImV4cCI6MTU5Mzc4MjUwNn0.Qdexnx_x4_Vm5Mw7fPgKCUoKto4ujtLc9NTtk7hxOsE"} 200
2、以json格式傳遞參數:
想要在post請求中使用data關鍵字來傳遞json格式的字符串,首先得把dict轉為string
import requests import json url='http://www.tuling123.com/openapi/api' data={'key':'4b6ce82fbe554a11b99dabfa3a4ae6d9','info':'我的城市在北京,請你記住','userid':'jxn'} print(type(data)) json_data=json.dumps(data) print(type(json_data)) r=requests.post(url,data=json_data) print(r.text) print(type(r.text)) 結果: <class 'dict'> <class 'str'> {"code":100000,"text":"你不是說你不喜歡我么?"} <class 'str'>
除了可以對dict編碼后以string的方式傳遞參數外,還可以直接使用json關鍵字直接傳遞
import requests import json url='http://www.tuling123.com/openapi/api' json_data={"key":"4b6ce82fbe554a11b99dabfa3a4ae6d9","info":"beijing","userid":"jxn"} r=requests.post(url,json=json_data) print(r.text)
結果:{"code":100000,"text":"北京"}
