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

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

Barbara Streisand
Barbara Streisand原創
2024-10-23 12:19:01248瀏覽

How to Print Raw HTTP Requests with Python Requests?

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

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