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

分类: 计算机技术
推荐阅读:
Python this模块的加密原理 this模块的代码(this模块位于Python安装目录/lib下)。定义了2个变量;字符串s和字典d(被定义两次);s很明显是一段密文,d则是密码字典,key和value对应的是密文和原文;chr((i+13)%26 +c) 则是加密算法,其原理是通过向字典d写入KEY为字符A~Z,VALUE为加密后的字符。然后通过字典遍历的方法,匹配出正确的字符。
Rust assert_ne宏的用法和示例 在 Rust 中,assert_ne宏用于在测试时检查两个值是否不相等;如果它们不相等,则测试继续执行;如果它们相等,则会导致panic,并在控制台输出相关信息;
C语言函数大全 C语言标准库是C语言中非常重要的一部分,它包含了许多内置函数,可以为C程序员提供非常有用的功能和工具。标准库函数可以分为几个类别,包括输入输出函数、字符串处理函数、数学函数、时间函数、内存管理函数、文件操作函数等。
查询SSL证书的有效期 在本文中,你将了解如何查询网站SSL证书的有效期;首先,通过浏览器打开要查询的网站,以查询本站SSL证书是否过期为例...
pyside6将信号与槽函数进行连接 在本文中,你将了解信号与槽的概念,掌握在Qt Designer中添加槽函数,以及在PySide6中的应用。
CreateThread()创建线程传递SOCKET参数 使用CreateThread()创建线程传递SOCKET参数的正确方法如下: