python requests get請求 如何獲取所有請求

苹果芒發表於2024-05-20

在Python中,使用requests庫傳送HTTP GET請求非常簡單。如果你想獲取所有的請求,通常意味著你想記錄或跟蹤這些請求。這可以透過使用requestsSession物件和自定義的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_requestsend方法,以便列印出傳送的請求和接收的響應。然後,我們建立了一個Session物件,並將LoggingHTTPAdapter掛載到所有的請求上。這樣,透過這個session物件發出的所有請求都會被記錄。

相關文章