问题描述
我正在尝试限制request.Session()尝试连接到URL \设备的次数。我有以下内容:
import requests
from requests.adapters import HTTPAdapter
from requests.packages.urllib3.util.retry import Retry
session = requests.Session()
retry = Retry(total=0,read=0,connect=0,backoff_factor=0,status_forcelist=None)
adapter = HTTPAdapter(max_retries=retry)
session.mount('http://',adapter)
session.mount('https://',adapter)
session.get(url='http://192.168.0.10/ssi.cgi/Login.htm',timeout=(3,10))
这适用于大多数URL \设备,但是有时该设备没有响应,我遇到了以下日志:
Starting new HTTP connection (1): 192.168.0.10:80
Starting new HTTP connection (1): 192.168.0.10:80
Starting new HTTP connection (1): 192.168.0.10:80
Starting new HTTP connection (1): 192.168.0.10:80
Starting new HTTP connection (1): 192.168.0.10:80
Starting new HTTP connection (1): 192.168.0.10:80
ConnectionError
HTTPConnectionPool(host='192.168.0.10',port=80): Max retries exceeded with ur
l: /ssi.cgi/Login.htm (Caused by NewConnectionError('<urllib3.connection.HTTPCon
nection object at 0x02F11D50>: Failed to establish a new connection: [WinError 1
0060] A connection attempt failed because the connected party did not properly r
espond after a period of time,or established connection failed because connecte
d host has failed to respond'))
由于重试限制在这里无效,我该如何限制请求模块进行的“开始新的HTTP连接”尝试次数?
通常情况下,我会使用timeout =(15,60),但是连接将等待整整60秒再尝试一次,然后再执行5次...
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)