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