Python 关于Max retries exceeded with url的错误,请求大佬帮忙解决

写了一个脚本,内容就是去反复请求一个http接口,按天返回数据,再把N天的数据进行统计,就是我自己想要的内容了。

我在本地调试,可以顺利通过,拿到我想要的内容,但是当我把脚本上传到我们的局域网linux服务器后(CentOS 6.9, python3.7.3),就出现了这样的问题:

requests.exceptions.ConnectionError: HTTPSConnectionPool(host='xxx', port=443): Max retries exceeded with url: /api/statistics/soaStatistics?appId=XXX&dateType=day&datetime=1590304903000&clientAppId= (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 110] Connection timed out'))

应该是http连接太多没有关闭导致的,

而后使用google、百度各种方式,尝试了以下各种解决办法:
1.增加重试次数:
requests.adapters.DEFAULT_RETRIES = 5
2.关闭多余链接:
s = requests.session()
s.keep_alive = False
3.在请求的时候,捕获异常,并sleep:
try:
xxxxx
except NewConnectionError:
sleep(5)
continue

结果都是一样,程序最终会返回Max retries exceeded with url这个异常,而我在本地执行该脚本,无论 我加不加以上三种方式的代码,都会正常执行,请教各位大佬这是怎么回事?

UP问题解决了吗?我最近也遇到了类似的问题,报错就是connectionTimeout,关键是有的url就行,有的就不行,用的相同的代理。

抓包看看是不是防火墙和网络的问题,或者服务期限制了最大的连接数造成的。

NameError: name 'NewConnectionError' is not defined

port=443
这就是问题所在了,因为你的服务器请求了错误的端口号。
你按照这样的思路,一定能找到解决办法的。

升级requests包