2014-01-21 76 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脚本中明确地将其设置为空时,我的问题就消失了。