Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python-使用urllib3重试添加基于响应内容的重试解决方案_Python_Python Requests_Urllib3 - Fatal编程技术网

python-使用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

我使用的是通常的urllib3解决方案,用于对请求进行重试和超时处理:

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的内置重试解决方案或其他解决方案处理此类基于内容的重试