python requests get请求 如何获取所有请求

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

posted @ 2024-05-20 11:50  苹果芒  阅读(18)  评论(0编辑  收藏  举报