【问题标题】:Python 2.7.13 does not respect NO_PROXY and makes urllib2.urlopen() error with "Tunnel connection failed: 403 Forbidden"Python 2.7.13 不尊重 NO_PROXY 并使用“隧道连接失败:403 Forbidden”使 urllib2.urlopen() 错误
【发布时间】:2025-11-28 05:50:01
【问题描述】:

以下测试通过 Python 2.7.11:

def test_urllib(self):
    import urllib2
    import ssl
    context = ssl._create_unverified_context() # service does not have a trusted cert
    url = urllib2.urlopen("https://intranet.adress:port/", context=context)
    url.read()

升级到 Python 2.7.13 后,测试失败:

python/Lib/urllib2.py",第 1198 行,在 do_open 中 引发 URLError(err) URLError: urlopen error 隧道连接失败: 403 Forbidden

我尝试了一些标头和代理设置,但没有任何成功。我总是得到同样的错误。在 SSL 身份验证中,Python 2.7.112.7.13 之间有什么变化?

【问题讨论】:

    标签: python ssl urllib2 http-proxy urlopen


    【解决方案1】:

    PS.:为此问题创建的 Python 错误。以点 (.domain) 开头的 no_proxy 内容在 Python 2.7.13 中被破坏

    https://bugs.python.org/issue29142

    【讨论】:

    • 基于上述报告的总结;该错误于 2016 年 4 月 30 日在 Python 中引入,并于 2017 年 1 月 9 日修复。影响版本:2.7.12、2.7.13、3.5.2、3.6.0。该修复程序应包含在以下版本中:2.7.14、3.5.3、3.6.1 和 3.7.0。