ホームページ >バックエンド開発 >Python チュートリアル >Python リクエストを使用して生の HTTP リクエストを出力するには?

Python リクエストを使用して生の HTTP リクエストを出力するには?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-23 11:40:26940ブラウズ

How to Print the Raw HTTP Request with Python Requests?

Python リクエストでの生の HTTP リクエストの出力

Python のリクエスト モジュールでは、リクエスト行を含む未編集の HTTP リクエストを出力できます。ヘッダーとコンテンツ。これは、デバッグの目的や、送信される正確な HTTP リクエストの検査に役立ちます。

リクエスト モジュールのバージョン 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>

この関数は、

実際のリクエストを印刷後に送信するには、例に示すように、リクエストの Session オブジェクトで send メソッドを使用できます。

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

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