久久久精品2019免费观看_亚洲国产精品成人久久久_69国产成人综合久久精品91_国产精品久久精品视

python 為什么session.headers打印的不是發(fā)送的請求頭

今天寫了段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ā)送的請求頭

贊 (0) 打賞

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

微信掃一掃打賞