【问题标题】:Proxy Authentication error in Urllib2 (Python 2.7)Urllib2 中的代理身份验证错误(Python 2.7)
【发布时间】:2012-09-13 07:13:57
【问题描述】:

[Windows 7 64 位; Python 2.7]

如果我尝试使用 Urllib2,我会收到此错误

Traceback (most recent call last):
  File "C:\Users\cYanide\Documents\Python Challenge\1\1.py", line 7, in <module>
    response = urllib2.urlopen('http://python.org/')
  File "C:\Python27\lib\urllib2.py", line 126, in urlopen
    return _opener.open(url, data, timeout)
  File "C:\Python27\lib\urllib2.py", line 400, in open
    response = meth(req, response)
  File "C:\Python27\lib\urllib2.py", line 513, in http_response
    'http', request, response, code, msg, hdrs)
  File "C:\Python27\lib\urllib2.py", line 438, in error
    return self._call_chain(*args)
  File "C:\Python27\lib\urllib2.py", line 372, in _call_chain
    result = func(*args)
  File "C:\Python27\lib\urllib2.py", line 521, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
**urllib2.HTTPError: HTTP Error 407: Proxy Authentication Required**

现在,我支持需要身份验证的大学代理,所以这可能就是发生这种情况的原因。但是 Urllib2 不应该从系统设置中提取身份验证和代理信息吗?

我知道我可以在我的程序中插入一些额外的代码来“硬编码”程序中的代理信息,但我真的不想这样做,除非这是最后的手段。这将阻碍程序在大学中具有不同身份验证 ID 和密码的计算机之间的可移植性。

【问题讨论】:

    标签: python windows proxy urllib2


    【解决方案1】:

    您的程序应该会看到在 Windows 中设置的环境变量。所以在你的 Windows 中拥有这两个环境变量。

    HTTP_PROXY = http://username:password@proxyserver.domain.com

    HTTPS_PROXY = https://username:password@proxyserver.domain.com

    然后继续执行您的脚本。它应该选择正确的身份验证器并继续连接。

    【讨论】:

    • 我对代理配置和网络不太了解,但是如果OP担心可移植性,在Windows中配置环境变量会解决问题吗?该程序只能在配置的机器上运行,对吧?
    猜你喜欢
    • 1970-01-01
    • 2010-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-05
    相关资源
    最近更新 更多