requests 發送請求時 保持 headers 的順序


如題,在使用 requests 發送 post 請求時保持 headers 的順序不變

問題來源於 http://match.yuanrenxue.com/match/3 這個網站
在抓包時發現每次獲取數據前都會發送一個 post 請求去獲取cookies

在模擬時卻發現怎么都無法獲取cookies
通過 fiddler 查看發現是 headers 的順序有問題,
通過 postman 調整 headers 的順序,模擬發送請求,確定是 headers 順序的問題

問題定位

通過 fiddler 查看發現可能是 headers 的順序有問題,
通過 postman 調整 headers 的順序,模擬發送請求,確定是 headers 順序的問題

錯誤的響應

正確的響應

解決方案

import requests

url = "xxx"
headers = {
    "Host": "match.yuanrenxue.com",
    "Connection": "keep-alive",
    "Content-Length": "0",
    "Origin": "http://match.yuanrenxue.com",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36",
    "Accept": "*/*",
    "Referer": "http://match.yuanrenxue.com/match/3",
    "Accept-Encoding": "gzip, deflate",
    "Accept-Language": "zh-CN,zh;q=0.9",
}
# 先session
session=requests.Session()
# 后session clear,clear這個是比較關鍵的寫法。
session.headers.clear()
session.headers.update(
    headers
)
resp=session.post(url)

謹記

之前從未遇到過這個問題,


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM