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实现快速排序(quick sort) 快速排序由C. A. R. Hoare在1960年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
Golang读取INI配置文件到结构体 本文将介绍Golang使用github.com/go-ini/ini包读取ini配置文件到结构体的方法。
C语言isalpha()函数:判断字符是否为字母 isalpha()函数是C语言中的一个标准库函数;用于判断一个字符是否为字母(a-z或A-Z);如果参数c是一个字母(不区分大小写),则返回非0值,否则返回0;
cannot fallthrough final case in switch的解决方法 在Go语言中,fallthrough 用于 switch 语句的 case 块中,它将会在当前 case 块执行完后执行下一个 case 块,不论下个 case 块条件是否匹配,但如果 fallthrough 后没有 case ,则会产生 cannot fallthrough final case in switch 的错误。
使用Python求取前n个自然数的总和 给一个自然数n,使用Python求取前n个自然数的总和;
在Rust中如何申请堆内存 在Rust中,可以使用 Box 关键字来在堆上分配内存。Box 是一个智能指针类型,它提供了所有权转移语义,可以将其值分配到堆上,然后通过变量引用进行访问。