在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
对象发出的所有请求都会被记录。