Python アプリケーションでの HTTP リクエストの検査
API 呼び出し中のエラーの原因を特定することは、特にエラー応答に具体的な詳細が欠けている場合に困難になることがあります。 。このような問題を解決するために、API プロバイダーは多くの場合、ヘッダーを含む HTTP リクエスト全体を必要とします。この記事では、一般的なリクエスト ライブラリを使用してこれらのリクエストをキャプチャするための便利なアプローチを紹介します。
ログを使用してリクエストをキャプチャする
リクエストの最新バージョン (1.x 以降) HTTP リクエストをキャプチャするためのシンプルなロギング メカニズムを提供します。 http.client レベルでデバッグを有効にすることで、リクエスト (ヘッダーと本文を含む) とレスポンス (ヘッダーを含む) の両方をログに記録できます。
実装
次のコード スニペットは、HTTP リクエスト ログを有効にする方法を示しています。
import requests import logging # Enable debugging at http.client level http_client.HTTPConnection.debuglevel = 1 # Initialize and configure logging logging.basicConfig() logging.getLogger().setLevel(logging.DEBUG) requests_log = logging.getLogger("requests.packages.urllib3") requests_log.setLevel(logging.DEBUG) requests_log.propagate = True # Make an HTTP request requests.get('https://httpbin.org/headers')
このコードを実行すると、リクエスト ログが有効になり、ログ データが request_log 変数に保存されます。その後、必要に応じてこの変数からリクエスト ヘッダーと本文にアクセスできます。
出力例
以下は、ロギング メカニズムによって生成されるデバッグ出力の例です。
send: 'GET /headers HTTP/1.1\r\nHost: httpbin.org\r\nAccept-Encoding: gzip, deflate, compress\r\nAccept: */*\r\nUser-Agent: python-requests/1.2.0 CPython/2.7.3 Linux/3.2.0-48-generic\r\n\r\n'
この出力には、HTTP メソッド、URI、ヘッダー、リクエスト本文 (存在する場合) を含む HTTP リクエスト全体が含まれます。この情報を API プロバイダーに提供すると、エラーの特定と解決が容易になります。
以上がリクエスト ライブラリを使用して Python アプリケーションで HTTP リクエストをキャプチャする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。