Python リクエストを使用して生の HTTP リクエストを出力するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-10-23 12:19:01
オリジナル
255 人が閲覧しました

How to Print Raw HTTP Requests with Python Requests?

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

リクエスト モジュールを使用する場合、生の詳細情報を表示する必要がある場合があります。ヘッダーだけを超えた 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 中国語 Web サイトの他の関連記事を参照してください。

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