写了一个脚本,内容就是去反复请求一个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这个异常,而我在本地执行该脚本,无论 我加不加以上三种方式的代码,都会正常执行,请教各位大佬这是怎么回事?