我这样做来获取一些数据:
c = pycurl.Curl()
c.setopt(pycurl.ENCODING, gzip )
c.setopt(pycurl.URL, url)
c.setopt(pycurl.TIMEOUT, 10)
c.setopt(pycurl.FOLLOWLOCATION, True)
xml = StringIO()
c.setopt(pycurl.WRITEFUNCTION, xml.write )
c.perform()
c.close()
我的url通常是这样的:
http://host/path/to/resource-foo.xml
通常我回到302年指出:
http://archive-host/path/to/resource-foo.xml.gz
鉴于我已经设置FOLLOWLOCATION,编码gzip,一切都很好。
问题是,有时候,我有一个不会导致一个URL重定向到一个gzip资源。当这种情况发生时,<代码> c.perform() > < /代码抛出这个错误:
pycurl.error: (61, Error while processing content unencoding: invalid block type )
这表明我pycurl试图gunzip不是gzip的资源。
有一些方法我可以指导pycurl找出响应编码,和gunzip或不适当的呢?我扮演着使用不同的值<代码>编码> < /代码,但到目前为止没有豆子。
pycurl文档似乎有点缺乏。:/
谢谢!