【发布时间】:2014-01-21 10:14:48
【问题描述】:
我正在尝试运行以下简单代码:
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 下运行良好(两者都在林赢)。什么会导致这个问题?
【问题讨论】:
-
抛出什么异常?
-
它会抛出带有代码 503(服务不可用)的 URLError - 但我确信该服务是可用的,因为我已经使用 Mozzila 和 curl 进行了尝试。 (文档中的 503:docs.python.org/release/2.6/howto/urllib2.html)
-
我怀疑它与base64和utf有关。你的文件有 utf8 字符集吗?尝试在上面添加:
#!/usr/bin/env python # -*- coding: utf-8 -*-
标签: python linux http get urllib2