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

分类: 计算机技术
推荐阅读:
CreateThread()创建线程传递SOCKET参数 使用CreateThread()创建线程传递SOCKET参数的正确方法如下:
WHOIS协议Python和Golang的实现 WHOIS协议是一个非常简单的Internet信息查询协议;在RFC812文档中有定义,先向服务器的TCP 43端口建立一个连接,发送要查询的域名关键字并以回车换行结尾,然后接收服务器返回信息,服务器输出完毕后会立即断开连接。
打开任务管理的一瞬间CPU飙到很高,这种现象正常吗? Windows系统上的任务管理器(进程名Taskmgr.exe)用于实时显示计算机当前有关于性能、进程、服务等信息;细心的朋友会发现,在打开任务管理器的一瞬间,CPU使用率瞬间飙升,基本上会达到100%,随后也会很快回落,那这种现象正常么?
VirtualBox的无缝模式真是太酷了 VirtualBox的无缝模式真的很酷,可以让虚拟机中的系统和Windows系统共享一个窗口,具体是个什么效果,请看下图:
查询SSL证书的有效期 在本文中,你将了解如何查询网站SSL证书的有效期;首先,通过浏览器打开要查询的网站,以查询本站SSL证书是否过期为例...
python chr()函数 chr() 是 Python 内置函数之一,用于将整数转换为对应的 Unicode 字符。