python-requests 2.0.0 - [Errno 8] _ssl.c:504:EOF违反协议

Alo*_*nik 5 python https python-requests

我正在使用Requests 2.0.0并且未能使用以下命令完成https GET请求:

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')
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

[Errno 8] _ssl.c:504: EOF occurred in violation of protocol.
Run Code Online (Sandbox Code Playgroud)

我在网上和这个网站上阅读了很多内容,但我读到的每个地方都说版本2.0.0中修复了这些问题.

有谁可以在这里建议?

Luk*_*asa 11

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

如果您在浏览器中打开该URL并使用Wireshark跟踪TLS握手,您可以看到Chrome建议使用服务器名称,远程服务器使用它来确定要使用的证书.

要在请求中使用此功能,您可以使用Python 3,其中包括SNI支持以及哪些请求将透明地使用,或者您可以在此答案的请求中为Python 2.x中的SNI安装所需的依赖项:

  • pyopenssl
  • NDG-httpsclient
  • pyasn1

这些解决方案中的任何一个都将使您的代码正常工作.