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

Mary-Kate Olsen
リリース: 2024-10-23 12:32:01
オリジナル
885 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!