2014-01-21 74 views
1

餘米試圖運行下面的簡單代碼:的Python的urllib2給出錯誤503

import urllib2 
import base64 

username = "some_user" 
password = "some_pass" 
url = "some_url" 

req = urllib2.Request(url) 
authheader = "Basic %s" % base64.encodestring('%s:%s' % (username, password)) 
req.add_header("Authorization", authheader) 
req.add_header('User-agent', 'Mozilla/5.0') 

resp = urllib2.urlopen(req) 
print resp.read() 

它在Windows罰款,但在Linux下它不工作在同一臺機器上,它提供了與代碼503 URL例外。我敢肯定,服務器沒有問題,因爲它適用於Mozzila和curl(在lin和win之下)。什麼會導致這個問題?

+0

它拋出了什麼異常? –

+0

它引發URLError與代碼503(服務不可用) - 但我相信該服務是可用的,因爲我已經試過它與Mozzila和捲曲。 (503在文檔:http://docs.python.org/release/2.6/howto/urllib2.html) – user1724641

+0

我懷疑它與base64和utf有關。你的文件是utf8字符集嗎?嘗試添加ontop: #!/ usr/bin/env python # - * - coding:utf-8 - * - ' –

回答

1

我有一個類似的問題,最終發現我有一個實際指向代理服務器的環境變量「http_proxy」。當我刪除環境變量或者在我的Python腳本中明確地將其設置爲空時,我的問題就消失了。