2013-10-16 55 views
4

我使用请求2.0.0而未能利用请求完成HTTPS GET:蟒-请求2.0.0 - [错误8] _ssl.c:504:EOF发生违反协议

requests.get('https://backend.iddiction.com/rest/v1/s2s/confirm_install?apphandle=slotsjourneyofmagic&appsecret=5100d103e146e2c3f22af2c24ff4e2ec&mac=50:EA:D6:E7:9B:C2&idfa=134DA32A-A99F-4864-B69E-4A7A2EFC6C25') 

我得到这个错误:

[Errno 8] _ssl.c:504: EOF occurred in violation of protocol. 

我读了很多的内容在网络上,并在此网站,但每一个地方我读它说,在固定版本2.0.0这些问题。

任何人都可以在这里建议?

回答

10

服务器要求您使用SNI,这在Python 2.x中通常不可用。

如果您在浏览器中打开该URL并使用Wireshark来追踪TLS握手,您可以看到Chrome提出了服务器名称,并且远程服务器使用它来确定要使用哪个证书。

要在请求这个工作,你可以使用Python 3,其中包括SNI支持并请求将透明地使用,也可以在Python 2.x中的请求from this answer为SNI安装所需的依赖关系:

  • pyopenssl
  • NDG-httpsclient
  • pyasn1

无论这些解决方案将正确地使你的代码工作。

+0

非常感谢。 完美的作品。 –

相关问题