Why requests raise this exception "check_hostname requires server_hostname"?

p={ 'http':' correct proxy here', 'https':' correct proxy here' } self.response=requests.get(url=url,headers=self.headers,timeout=(6,15),proxies=p) 

And then it raise the exception:

Traceback (most recent call last): File "C:\Users\xyl13509876955\Desktop\Monitor\dicks.py", line 61, in send_request self.response=requests.get(url=url,headers=self.headers,timeout=(6,15),proxies=p) File "C:\Users\xyl13509876955\AppData\Local\Programs\Python\Python37\lib\site-packages\requests\api.py", line 76, in get return request('get', url, params=params, **kwargs) File "C:\Users\xyl13509876955\AppData\Local\Programs\Python\Python37\lib\site-packages\requests\api.py", line 61, in request return session.request(method=method, url=url, **kwargs) File "C:\Users\xyl13509876955\AppData\Local\Programs\Python\Python37\lib\site-packages\requests\sessions.py", line 542, in request resp = self.send(prep, **send_kwargs) File "C:\Users\xyl13509876955\AppData\Local\Programs\Python\Python37\lib\site-packages\requests\sessions.py", line 655, in send r = adapter.send(request, **kwargs) File "C:\Users\xyl13509876955\AppData\Local\Programs\Python\Python37\lib\site-packages\requests\adapters.py", line 449, in send timeout=timeout File "C:\Users\xyl13509876955\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\connectionpool.py", line 696, in urlopen self._prepare_proxy(conn) File "C:\Users\xyl13509876955\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\connectionpool.py", line 964, in _prepare_proxy conn.connect() File "C:\Users\xyl13509876955\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\connection.py", line 359, in connect conn = self._connect_tls_proxy(hostname, conn) File "C:\Users\xyl13509876955\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\connection.py", line 506, in _connect_tls_proxy ssl_context=ssl_context, File "C:\Users\xyl13509876955\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\util\ssl_.py", line 432, in ssl_wrap_socket ssl_sock = _ssl_wrap_socket_impl(sock, context, tls_in_tls) File "C:\Users\xyl13509876955\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\util\ssl_.py", line 474, in _ssl_wrap_socket_impl return ssl_context.wrap_socket(sock) File "C:\Users\xyl13509876955\AppData\Local\Programs\Python\Python37\lib\ssl.py", line 423, in wrap_socket session=session File "C:\Users\xyl13509876955\AppData\Local\Programs\Python\Python37\lib\ssl.py", line 827, in _create raise ValueError("check_hostname requires server_hostname") ValueError: check_hostname requires server_hostname 

Please help me solve the problem and the best way is to show me the right code. I am very confused and frustrated for the problem!!

2

13 Answers

as a work around:

pip install urllib3==1.25.11

4

As I understand, in new urllib3 the main schema of proxy was changed... can read here. This settings help for me (for urllib3=1.26.4).

An old

proxy={ 'http':'8.88.888.8:8888', 'https':'8.88.888.8:8888' } 

The new

proxy={ 'https': ' 'http': ' } 

UPDATED

I have met this issue again for requests 2.26.0, but in this time it works with an old schema...

proxy={ 'http':'8.88.888.8:8888', 'https':'8.88.888.8:8888' } 

1

I have solved the problem. It is a bug with urllib3.

You can use pip install urllib3==1.25.8

2

Downgrading urllib3 has solved it for me too. Though I had to reset the proxy env var: https_proxy="" pip install urllib3==1.25.11

Without that, I was getting the following error and it couldn't downgrade urllib3 (see SSLError installing with pip).

WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1091)'))': /simple/pip/ 
3

In my case, Charles' windows proxy function caused this error. After I close windows proxy, this error is gone.

1

Had the same problem on Ubuntu 18.04 using Python 3.6.9, searched through a lot of pages and finally fixed it via trial and error.

The fix is changing the environment variable https_proxy. Previously https_proxy is and I removed the https header via:

export https_proxy=127.0.0.1:<PORT>

Then I can do python3 -m pip install --upgrade urllib3.

1

None of the answers did it for me. Here's a silly looking solution that fixed my problem:

If you, like me trying to install packages in a corporate environment, you probably have given a proxy to limit interactions with world wide web, so all you have to do is to export that proxy in http and https format.

something like this:

export http_proxy= export https_proxy= 

(my proxy didnt use the ssl, it didnt even matter.)

replace x with your proxy ip

1

On Linux, the problem can be resolved by replacing https with http in the proxy settings environment variable export https_proxy=. Note, it is proxy settings for https, but an http address is used.

1

I ran into the same issue, the proxy config is enabled by accident. Just turning off the proxy worked for me.

1

Turn Your VPN/Proxy thing (which enables as System Proxy) maybe it fixed.

i was using QV2ray and i had this issue, when i disabled it, pip works fine.

Don't use VPN proxy service off it and try again

4

I got this error when I was using a proxy. I disabled the proxy, the error was fixed.

As others mention, it has something to do with the connection to the server.

I solved it simply by closing Fiddler.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like