HTTPConnectionPool(host='yzw.zjnu.edu.cn', port=80): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f50050a2700>: Failed to establish a new connection: [Errno 110] Connection timed out'))
Traceback (most recent call last):
UnboundLocalError: local variable 'req' referenced before assignment
这是由于:能创建socket套接字句柄的数量是有限的,无论是win还是Linux,错误信息是用光了socket, 所以无法再建立tcp链接, 所以 要么sleep()停一下; 要么就让它不要一直保持着连接,访问完,完成一次传输就断掉 了。
方法一
添加一个请求头,请求头内字段为:
headers = {'Connection':'close'}
请求修改为:
res = requests.post('http://', json.dumps(data), headers=headers)
方法二
s = requests.session()
s.keep_alive = False
这篇博客探讨了在进行HTTP请求时遇到的MaxRetriesExceeded错误,该错误通常由于socket套接字句柄耗尽导致。博主提出了两种解决方案:一是通过设置请求头关闭连接;二是使用session并关闭保持连接选项。这些方法旨在避免因连接数过多而引发的连接超时问题,确保HTTP请求的顺利进行。

1万+

被折叠的 条评论
为什么被折叠?



