1

我的代码使用 httplib 从 PHP 页面获取 CSV 数据。当我在 Firefox 或 Chrome 中打开页面时,数据显示得很好。但是,当我尝试使用我的 python 代码获取它时,我得到一个内容长度为 0 且没有数据的标头。此页面是唯一这样做的页面 - 在同一目录中的另一个页面中,python httplib 获取工作正常。有人可以告诉我我做错了什么吗?

代码:

FILE_LOC = '/core/csv.php'
argstr = '?type=' + self.type + '&id=' + self.id
conn = httplib.HTTPConnection(SERVER_ADDRESS)
conn.request('GET', FILE_LOC + argstr)
resp = conn.getresponse()
csvstr = resp.read()

响应标头:

[('content-length', '0'), ('x-powered-by', 'PHP/5.1.6'),
('server', 'Apache/2.2.3 (CentOS)'), ('connection', 'close'),
('date', 'Thu, 19 Aug 2010 21:39:44 GMT'), ('content-type', 'text/html; charset=UTF-8')]
4

2 回答 2

1

也许 PHP 脚本希望看到 httplib 模块未发送的一些 HTTP 标头或标头。例如,默认情况下,httplib 似乎不发送 Accept、Accept-Language 或 User-Agent 标头。您可能需要将其中一个或多个添加到 request() 调用中。不过,它似乎确实发送了正确的 Host 标头,这是我的第一个猜测。

于 2010-08-19T22:08:05.477 回答
1

可能在 User-Agent 标头上进行过滤——尝试欺骗例如您的 Firefox。

如果失败,您可以使用 Firefox 连接到本地 Python 服务器以准确查看它发送的标头,然后复制这些标头。

于 2010-08-19T22:37:42.997 回答