如何解决Python-如何在第一次请求时出现SSL错误URL超过最大重试次数?
这是我的代码:
import requests
url = "https://api.vidal.fr/rest/api/products?app_id=MY_ID&app_key=MY_KEY&q=doliprane"
response = requests.get(url,verify=False)
print(response.text.encode('utf8'))
这是我得到的错误:
Traceback (most recent call last):
File "get_classes.py",line 6,in <module>
response = requests.get(url,verify=False)
File "/Users/christou/Library/Python/2.7/lib/python/site-packages/requests/api.py",line 76,in get
return request('get',url,params=params,**kwargs)
File "/Users/christou/Library/Python/2.7/lib/python/site-packages/requests/api.py",line 61,in request
return session.request(method=method,url=url,**kwargs)
File "/Users/christou/Library/Python/2.7/lib/python/site-packages/requests/sessions.py",line 530,in request
resp = self.send(prep,**send_kwargs)
File "/Users/christou/Library/Python/2.7/lib/python/site-packages/requests/sessions.py",line 643,in send
r = adapter.send(request,**kwargs)
File "/Users/christou/Library/Python/2.7/lib/python/site-packages/requests/adapters.py",line 514,in send
raise SSLError(e,request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='api.vidal.fr',port=443): Max retries exceeded with url: /rest/api/products?app_id=MY_ID&app_key=MY_KEY&q=doliprane (Caused by SSLError(SSLEOFError(8,u'EOF occurred in violation of protocol (_ssl.c:590)'),))
我的代码非常简单,经过研究后,我知道问题可能出在错误的证书上(尽管'verify = False'不能解决问题)或旧版本(Python或SSL)...
不要让错误消息误导您,这是我对此API提出的第一个请求。此时不能超过任何最大请求数。当我在浏览器中复制/粘贴URL时,它可以正常工作。
我该怎么办?
解决方法
我了解问题可能来自错误的证书...
不。服务器证书验证是在本地完成的,不会导致显示的错误。
...或者可能是旧版本(Python或SSL)
可能性更大。关于您的Python版本(无论是2.7.whatever)还是openssl,一无所知,但是如果您的openssl不支持TLS 1.1或TLS 1.2,因为在服务器上禁用了TLS 1.0,则会发生此错误。例如,MacOS推出了很多年的openssl版本就导致了此类错误。
在TLS握手期间,某些防火墙可能会阻止连接,这也可能是一个问题。很难说。但是您可以尝试使用具有不同客户端的同一台计算机访问该站点,以缩小问题的范围。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。