在Python中,使用requests
庫傳送HTTP GET請求非常簡單。如果你想獲取所有的請求,通常意味著你想記錄或跟蹤這些請求。這可以透過使用requests
的Session
物件和自定義的HTTPAdapter
來實現。
以下是一個如何實現這一功能的示例程式碼:
import requests from requests.adapters import HTTPAdapter from requests.packages.urllib3.response import HTTPResponse class LoggingHTTPAdapter(HTTPAdapter): def send_request(self, request, **kwargs): print(f"Sending {request.method} request to {request.url}") return super().send_request(request, **kwargs) def send(self, request, **kwargs): response = super().send(request, **kwargs) print(f"Received {response.status_code} response for {request.url}") return response # 建立一個session物件 session = requests.Session() # 將自定義的LoggingHTTPAdapter設定為所有HTTP請求的介面卡 session.mount('http://', LoggingHTTPAdapter()) session.mount('https://', LoggingHTTPAdapter()) # 現在所有的請求都會被自動記錄 response = session.get('http://example.com')
在這個例子中,我們定義了一個LoggingHTTPAdapter
類,它覆蓋了send_request
和send
方法,以便列印出傳送的請求和接收的響應。然後,我們建立了一個Session
物件,並將LoggingHTTPAdapter
掛載到所有的請求上。這樣,透過這個session
物件發出的所有請求都會被記錄。