在Python 請求中列印原始HTTP 請求
在Python 的requests 模組中,可以列印未經編輯的HTTP 請求,包括請求行,標題和內容。這對於偵錯目的或檢查正在傳送的確切 HTTP 請求非常有用。
從 requests 模組的 1.2.3 版本開始,引入了PreparedRequest 物件。此物件表示完整建構的 HTTP 請求,包含所有標頭和內容。在請求物件上使用prepare方法會產生一個PreparedRequest物件。
要使用PreparedRequest列印原始HTTP請求,您可以使用如下所示的pretty_print_POST函數:
<code class="python">import requests # Example request req = requests.Request('POST', 'http://stackoverflow.com', headers={'X-Custom': 'Test'}, data='a=1&b=2') # Prepare the request 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, )) # Print the raw HTTP request pretty_print_POST(prepared) # Send the request (if desired) s = requests.Session() s.send(prepared)</code>
此函數列印以格式化的方式顯示請求方法、URL、標頭和內容。
要在列印後發送實際請求,可以在 requests Session 物件上使用 send 方法,如範例所示。
以上是如何使用 Python 請求列印原始 HTTP 請求?的詳細內容。更多資訊請關注PHP中文網其他相關文章!