使用Python 請求列印原始HTTP 請求
使用requests 模組時,可能需要查看原始的、詳細的資訊不僅僅是標頭的HTTP 請求。本文探討如何列印出完整的 HTTP 請求,包括請求行、標頭和內容。
解決方案:使用PreparedRequest 物件
自版本 1.2.3 ,requests模組引入了PreparedRequest物件。該物件表示將發送到伺服器的確切位元組。透過使用此對象,可以按如下方式漂亮地列印請求:
<code class="python">import requests req = requests.Request('POST','http://stackoverflow.com',headers={'X-Custom':'Test'},data='a=1&b=2') prepared = req.prepare() def pretty_print_POST(req): print('{}\n{}\r\n{}\r\n\r\n{}'.format( '-----------START-----------', req.method + ' ' + req.url, '\r\n'.join('{}: {}'.format(k, v) for k, v in req.headers.items()), req.body, )) pretty_print_POST(prepared)</code>
此程式碼以人類可讀的格式列印完整的HTTP 請求:
-----------START----------- POST http://stackoverflow.com/ Content-Length: 7 X-Custom: Test a=1&b=2
PreparedRequest 物件提供了對構造的HTTP 請求的詳細查看,這對於調試或分析流量非常有用。
要實際發送請求,您可以使用以下程式碼:
<code class="python">s = requests.Session() s.send(prepared)</code>
以上是如何使用 Python 請求列印原始 HTTP 請求?的詳細內容。更多資訊請關注PHP中文網其他相關文章!