当我执行以下行时,
req = urllib2.Request(requestwithtoken)
self.response = urllib2.urlopen(req,self.request).read()
我收到以下异常:
SSLError: [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:590)
问题是我可以通过使用curl
ping服务来获取令牌。
在检索令牌的过程中,所有证书都已经过验证。
反过来,通过使用生成的令牌,我无法连接到该服务。
我在尝试时遇到上述错误。
可能是什么原因?
答案 0 :(得分:12)
我遇到了同样的问题。这可能是因为您的远程服务器请求urllib2不支持的密码。我认为有两种可能的解决方案:
Enable your specific cipher in urllib
。我们您也可以启用all ciphers supported(请参阅页面底部),而是检查您使用curl
中的哪一个,如上面的链接所示。
使用以下代码安装requests
额外的安全包:pip install requests[security]
。在requests issue on github。
我做了第二个选项,它对我有用。
答案 1 :(得分:-1)
我也有同样的问题。检查您正在使用的请求的版本。
import requests
print requests.__version__
如果版本是2.18.4,则应尝试降级到版本2.11.1。我这样做了,它解决了我的问题。 为此,请在终端
中发出以下命令pip uninstall requests
pip install requests==2.11.1
希望这有帮助。