2012-09-20 68 views
4

[Windows 7 64 bit; Python 2.7版]Urllib2中的代理身份驗證錯誤(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和密碼的計算機之間的可移植性。

回答

2

你的程序應該看到在Windows中設置的環境變量。所以在你的Windows中有這兩個環境變量。

HTTP_PROXY = http://username:[email protected]

HTTPS_PROXY = https://username:[email protected]

並與執行你的腳本繼續。它應該拿起正確的驗證器並繼續進行連接。