- 事先定義好headers,發(fā)送post請(qǐng)求怕敬,后臺(tái)一直報(bào)錯(cuò)‘505 非法請(qǐng)求’:
headers = dict()
headers.setdefault("Content-Type","application/json;charset=UTF-8")
headers.setdefault("sign",sign)
headers.setdefault("timestamp",timestamp)
response = requests.post(loginUrl,body_data,headers)
print("result---- %s" % response.text)
-
通過(guò)與后端確定揣炕,后端說(shuō)我的headers里面沒(méi)有傳timestamp,但是我明明在headers里面加了timestamp东跪,于是開(kāi)啟debug祝沸,發(fā)現(xiàn)headers字典確實(shí)里含有timestamp,但是T奖印!奉狈!發(fā)送出去的request中headers中根本和我定義的請(qǐng)求頭不一樣:
360截圖1700102111098142.png -
于是去查看requests庫(kù)中的post方法需要傳的參數(shù)卤唉,發(fā)現(xiàn)參數(shù)中沒(méi)有默認(rèn)headers這一項(xiàng):360截圖18370408296033.png
- 于是將post方法中所有的參數(shù)都指定名稱(chēng):
response = requests.post(url=loginUrl,json=body_data,headers=headers)
- 再次發(fā)送請(qǐng)求,請(qǐng)求成功仁期;
- 注:如果bodydata是json格式的參數(shù)的話桑驱,參數(shù)中要指定名稱(chēng)是“json=”,不要指定為“data=”跛蛋;