check_hostname requires server_hostname 错误解决方法


通常造成check_hostname requires server_hostname错误都与Python有关;本文将详细的描述造成这类错误的原因和多种解决方法;

错误原因

Python中有一个叫urllib3的库,该库用于构造HTTP客户端,发起HTTP请求,总之非常强大,它在很多第三方库中都被使用;非常出名的requests库就是基于它开发的;

在较新版本的urllib3中,存在一个bug(作者写这篇文章的时候还没被修复);该bug导致如果你的计算机使用了VPN或代理,将造成check_hostname requires server_hostname错误;所以基本上可以肯定造成这个错误的程序使用了或依赖于urllib3

解决方案

解决方法有两个,一是停止使用计算机的VPN或代理功能,二是使用较低版本的urllib3;具体用哪种方法取决于你的程序需不需要使用VPN;下面详细介绍两种解决方法;

停止使用VPN或代理

在有些时候,就算是停止了VPN的使用,也可能造成这个错误;这时候请打开计算机【设置】【网络和Internet】找到【代理】,确保某些选项都被关闭,有的时候代理程序意外结束导致这些设置没有被切换过来;

关闭代理

使用较低版本的urllib3

通过 pip 命令 pip list 查看当前的urllib3版本;如果其版本大于1.25.7,则将其卸载,再重新安装1.25.7urllib3

pip uninstall urllib3
pip install urllib3==1.25.7

如需转载,请注明出处;本文地址:https://www.perfcode.com/p/check-hostname-requires-server-hostname.html