ホームページ >バックエンド開発 >Python チュートリアル >Requests\' PreparedRequest を使用して Python で生の HTTP リクエストをプレビューする方法?

Requests\' PreparedRequest を使用して Python で生の HTTP リクエストをプレビューする方法?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-23 15:46:02881ブラウズ

How to Preview Raw HTTP Requests in Python Using Requests' PreparedRequest?

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

リクエスト モジュールを使用する場合、生の HTTP リクエストを検査することが有益な状況に遭遇することがあります。 HTTP リクエストがサーバーに送信されます。これには、ヘッダーだけでなく、リクエスト行とコンテンツも含まれます。

PreparedRequest を使用したソリューション:

バージョン 1.2.3 以降、Requests に PreparedRequest オブジェクトが導入されました。このオブジェクトは、https://requests.readthedocs.io/en/latest/advanced/prepared-requests-and-api/

に記載されているように、「サーバーに送信される正確なバイト」を表します。生の HTTP リクエストをきれいな形式で出力するには、次のように 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):
    """
    Formats and prints the prepared request in a readable manner.
    """
    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)

# Output:
-----------START-----------
POST http://stackoverflow.com/
Content-Length: 7
X-Custom: Test

a=1&b=2</code>

これにより、リクエスト行、ヘッダー、およびリクエスト本文が視覚的にわかりやすい形式で表示されます。

注: pretty_print_POST 関数で使用される書式設定は読みやすいように設計されており、実際に送信されるリクエストとは若干異なる場合があります。

準備されたリクエストを確認したら、次の手順に進むことができます。次のようにリクエスト セッションを使用して実際のリクエストを送信します。

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

準備されたリクエストや API などの高度な機能の詳細については、リクエストのドキュメントを参照してください: https://requests.readthedocs.io/ en/latest/advanced/prepared-requests-and-api/

以上がRequests\' PreparedRequest を使用して Python で生の HTTP リクエストをプレビューする方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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