报错信息:
raise SSLError(e, request=request)\nrequests.exceptions.SSLError: HTTPSConnectionPool(host='172.17.0.1', port=443): Max retries exceeded with url: /api/events/rule/?page_size=20&lock_id=140351160399616 (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:877)'),)
解决方式
(1)time.sleep()
(2)关闭 SSL 验证 verify=False
response = requests.get(fpath_or_url,headers=headers,stream=True, verify=False)
针对`requests.exceptions.SSLError`异常。这个异常通常发生在尝试使用不正确的SSL证书或服务器不支持的SSL协议时。
1. **time.sleep()**: 这个方法不是直接解决`SSLError`的。它只是让程序暂停一段时间,可能是在尝试连接服务器之间给一些时间让网络或服务器状态恢复。这并不能解决SSL错误的问题。
2. **关闭 SSL 验证 verify=False**: 这个方法可以绕过SSL证书验证,从而避免因为SSL证书问题导致的错误。但是,请注意,这样做会使你的连接不安全,因为你将不会验证服务器的身份。在生产环境中,这可能会导致中间人攻击。
示例:
import requests
import time
# 尝试连接,但关闭SSL验证
response = requests.get('https://example.com', verify=False)
# 或者,可以尝试多次连接
for i in range(5): # 尝试5次
try:
response = requests.get('https://example.com')
break
except requests.exceptions.SSLError:
print(f"SSL error occurred. Retrying in 5 seconds...")
time.sleep(5) # 等待5秒后重试
如果你只是为了测试或调试目的而暂时绕过SSL错误,那么关闭SSL验证是一个快速的方法。但是,在生产环境中,你应该确保你的代码可以正确处理SSL证书问题,而不是简单地绕过它。如果你不确定如何正确处理SSL问题,你可能需要寻求专业的帮助或建议。