ホームページ >バックエンド開発 >Python チュートリアル >Python リクエストを使用して生の HTTP リクエストを出力するにはどうすればよいですか?
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 サイトの他の関連記事を参照してください。