urllib3访问HTTPS超时

  • python版本3.7
  • 测试机器为mac以及linux
  • 编译器为PyCharm

  1. 使用urlilib3访问 https的代码

uri = 'https://xxx'
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
        http = urllib3.PoolManager()
        r = http.request(method='GET', url=uri, headers={'':''})

如果不加上urllib3.disable_warnings这一句的控制台会一直输出warning,warning里面也有官方的提供urllib3出错的各种解决方法。

这里遇到的问题是运行上述的代码会一直请求超时,即便是按照官方提供的各种证书验证方法也没用。

最后我发现如果不是在python的控制台使用上述的代码,访问https的时候就会超时。。。
即使用python + 文件名或者直接在编译器运行都会导致请求超时,必须在进入python的终端才能运行成功。

很遗憾我并没有找到解决方法。

  1. 使用urllib.request代替urllib3
    由于并没有找到解决方法,这里就只能用这个包代替urllib3了
opener = urllib.request.build_opener()
opener.addheaders = [('','')]
urllib.request.install_opener(opener)
html = urllib.request.urlopen('https://').read()

你可能感兴趣的:(python)