python-使用urllib3重试添加基于响应内容的重试解决方案
我使用的是通常的urllib3解决方案,用于对请求进行重试和超时处理:python-使用urllib3重试添加基于响应内容的重试解决方案,python,python-requests,urllib3,Python,Python Requests,Urllib3,我使用的是通常的urllib3解决方案,用于对请求进行重试和超时处理: DEFAULT_TIMEOUT = 20 # seconds class TimeoutHTTPAdapter(HTTPAdapter): def __init__(self, *args, **kwargs): self.timeout = DEFAULT_TIMEOUT if "timeout" in kwargs: self.time
DEFAULT_TIMEOUT = 20 # seconds
class TimeoutHTTPAdapter(HTTPAdapter):
def __init__(self, *args, **kwargs):
self.timeout = DEFAULT_TIMEOUT
if "timeout" in kwargs:
self.timeout = kwargs["timeout"]
del kwargs["timeout"]
super().__init__(*args, **kwargs)
def send(self, request, **kwargs):
timeout = kwargs.get("timeout")
if timeout is None:
kwargs["timeout"] = self.timeout
return super().send(request, **kwargs)
retry_strategy = Retry(
total=5,
backoff_factor=2,
status_forcelist=[400, 408, 429, 502, 503, 504, 508],
method_whitelist=["HEAD", "GET", "OPTIONS", "POST"]
)
adapter = TimeoutHTTPAdapter(max_retries=retry_strategy)
http = requests.Session()
http.mount("https://", adapter)
http.mount("http://", adapter)
但有时我会收到响应代码为200的post请求响应,其中包含错误消息和服务超时
是否可以使用urllib3的内置重试解决方案或其他解决方案处理此类基于内容的重试