2013-10-16 106 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

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

相關問題