首頁  >  文章  >  後端開發  >  如何使用 Python 請求列印原始 HTTP 請求?

如何使用 Python 請求列印原始 HTTP 請求?

Barbara Streisand
Barbara Streisand原創
2024-10-23 11:40:26864瀏覽

How to Print the Raw HTTP Request with Python Requests?

在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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn