檢查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')
透過執行此程式碼,我們啟用請求日誌記錄並將記錄的資料儲存在requests_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 請求,包括HTTP方法、URI、標頭和請求正文(如果存在)。透過向 API 提供者提供此信息,您可以方便地識別和解決錯誤。
以上是如何使用 Requests 函式庫在 Python 應用程式中擷取 HTTP 請求?的詳細內容。更多資訊請關注PHP中文網其他相關文章!