今天寫了段pyton代碼
session = requests.session()
session.post(url,headers=headers,data=data)
print(session.headers)
但是打印的結(jié)果卻是
{'User-Agent': 'python-requests/2.28.1', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
為什么會這樣呢?
原來print(session.headers)
打印的是會話對象的默認請求頭,而不是我發(fā)送的請求頭。
session.headers
通常包含了一些默認的請求頭,這些請求頭在每次使用會話發(fā)送請求時都會被發(fā)送。這些默認的請求頭可能包括:
User-Agent
: 標識客戶端的瀏覽器和操作系統(tǒng)信息。Accept
: 客戶端能夠處理的內(nèi)容類型。Accept-Language
: 客戶端偏好的語言。Accept-Encoding
: 客戶端能夠接受的壓縮格式。DNT
: Do Not Track,表示用戶不希望被追蹤。Connection
: 通常設(shè)置為keep-alive
,表示希望保持連接。
在我的代碼中,即使在 post
方法中指定了 headers
參數(shù),session.headers
打印的仍然是會話對象的默認請求頭,而不是我發(fā)送的請求頭。這是因為 post
方法中的 headers
參數(shù)是用于覆蓋會話的默認請求頭的,但它不會改變會話對象的默認請求頭。
如果想要查看發(fā)送的請求頭,需要在發(fā)送請求后立即打印響應對象的請求頭。例如:
pythonresponse = session.post(url, headers=headers, data=data)
print(response.request.headers) # 這將打印出實際發(fā)送的請求頭
請注意,response.request.headers
是從響應對象中獲取的,它包含了實際發(fā)送到服務器的請求頭。
未經(jīng)允許不得轉(zhuǎn)載:445IT之家 » python 為什么session.headers打印的不是發(fā)送的請求頭