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

分类: 计算机技术
推荐阅读:
C source files not allowed when not using cgo or SWIG: 解决办法 Go语言中,当你没有使用cgo编程,而go文件目录下却存在c文件时将引发诸如 package .: C source files not allowed when not using cgo or SWIG: main.c test.c 的错误;
Python 列表(List)的详细用法 列表(list)按特定顺序存储一系列项目。你可以使用索引或在循环中访问项。本问讲述了Python中列表的增加、修改、删除、遍历、复制等基本操作。
PyQt:QLabel在Python里的详细用法 本文将介绍PyQt5中的QLabel部件在Python下的详细用法;并介绍了一些QLabel部件常用的属性和方法,以及信号、槽的使用;
Python type()函数 type() 函数用于获取对象的类型,或者动态地创建一个新的类。其语法如下:
Python实现冒泡排序(Bubble Sort) 冒泡排序(Bubble Sort)是一种比较简单的排序算法。它重复遍历要排序的元素,依次比较两个相邻的元素,如果顺序错误,则将他们交换;直到所有元素顺序正确。
MySQL ADDDATE() 函数 ADDDATE()函数用于将一个时间值增加到一个日期当中;通俗的讲,就是可以通过这个函数将一个日期增加多少天;