我有一个现有的应用程序,它使用PyCurl通过REST类型接口下载压缩后的JSON数据。这工作得很好,但是对于期望的用途来说太慢了。
我正在尝试得到一个等效的解决方案,可以使用连接池。我有一个简单的例子与请求工作,但我不知道如何检索附加的gzip JSON文件,返回的头说在那里。
我当前的示例代码:
#!/usr/bin/python
import requests
headers = {"Authorization" : "XXX thisworksIgeta200Response",
"Content-type" : "application/json",
"Accept" : "application/json"}
r = requests.get("https://longickyGUIDyURL.noname.com",headers=headers,verify=False,stream=True)
data = r.raw.read(decode_content=True)
print data
这会生成一个HTML页面,而不是我想要的JSON输出。相关的返回头看起来像这样:
'content-disposition': 'attachment; filename="9d5c3c68-0e88-4b2d-88b9-94534b6cb80d"
'content-encoding': 'gzip',
所以:请求或urllib4(尝试了一点,但没有看到很多例子或很多文档)或其他东西?
任何指导或建议将是最受欢迎的!
如果用户请求将内容保存到一个文件(rfc2616)
报头中的文件名只不过是浏览器应该将其保存为的建议。那里没有其他文件。你得到的内容就是全部。content-encoding: gzip
标头意味着页面的内容是gzip编码的传输,但requests
模块将为您解码。
所以,如果它是HTML,而你期望的是JSON,你可能有错误的URL