ホームページ  >  記事  >  バックエンド開発  >  Python を使用して生の HTTP リクエストをキャプチャして出力する方法

Python を使用して生の HTTP リクエストをキャプチャして出力する方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-23 12:32:01877ブラウズ

How to Capture and Print Raw HTTP Requests Using Python?

リクエストを使用した Python での生の HTTP リクエストの出力

リクエスト モジュールを使用する場合、生の HTTP リクエスト全体を調べる必要が生じる場合があります。 、リクエスト行、ヘッダー、メッセージ本文を含みます。このガイドでは、完全な生の HTTP リクエストをキャプチャして出力する手法について説明します。

Requests (v1.2.3) に最近追加された PreparedRequest オブジェクトは、まさにそれを行う手段を提供します。 PreparedRequest オブジェクトはサーバーに送信される HTTP リクエストを表し、その正確なバイトへのアクセスを提供します。

リクエストを整形するには、次の Python コードを利用できます:

<code class="python">import requests

req = requests.Request('POST','http://stackoverflow.com',headers={'X-Custom':'Test'},data='a=1&amp;b=2')
prepared = req.prepare()

def pretty_print_POST(req):
    """
    Pretty-print the prepared request.

    Note: The formatting used here may differ from the actual request.
    """
    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>

このコードは、リクエスト行、ヘッダー、本文を含む、準備されたリクエスト全体を効果的にキャプチャし、視覚的に魅力的な形式で表示します。準備されたリクエストは、次のコードを使用してサーバーに送信できます。

<code class="python">s = requests.Session()
s.send(prepared)</code>

PreparedRequest オブジェクトを使用すると、サーバーに送信する前に生の HTTP リクエストを徹底的に検査して出力できます。これは、HTTP リクエストの複雑な詳細をデバッグしたり理解したりする場合に特に役立ちます。

以上がPython を使用して生の HTTP リクエストをキャプチャして出力する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。