I'm trying to download an HTTPS page from my site hosted on Google App Engine with SNI. No matter what library I use, I get the following error:
[Errno 8] _ssl.c:504: EOF occurred in violation of protocol
I've tried solving the error in many ways, including using the urllib3 openssl monkeypatch:
from urllib3.contrib import pyopenssl
pyopenssl.inject_into_urllib3
But I always get the same error mentioned above.
Any ideas?
Unfortunately for urllib3, the Python standard library did not add SNI support until Python 3.2. (See Issue #118 @ urllib3)
To use SNI in Python 2.7 with urllib3, you'll need to use the PyOpenSSL injection monkeypatch. (See Issue #156 @ urllib3)
from urllib3.contrib import pyopenssl
pyopenssl.inject_into_urllib3()
Your question basically had the same code, except it was missing the parentheses call on the pyopenssl.inject_into_urllib3()
call. Fixing that should do the trick.
You'll also need to make sure to have the following dependencies available:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With