我需要发出HTTP请求并确定响应大小(以字节为单位)。我总是使用request
来处理简单的HTTP请求,但我想知道我是否可以使用raw来实现这一点?
>>> r = requests.get('https://github.com/', stream=True)
>>> r.raw
我唯一的问题是我不明白原始返回或我如何计算这个数据类型的字节数?是使用request
和原始的正确方法吗?
答案 0 :(得分:21)
只需获取回复内容的len()
:
>>> response = requests.get('https://github.com/')
>>> len(response.content)
51671
如果您想要保持流式传输,例如,如果内容(太大),您可以迭代数据块并总结其大小:
>>> with requests.get('https://github.com/', stream=True) as response:
... size = sum(len(chunk) for chunk in response.iter_content(8196))
>>> size
51671
答案 1 :(得分:2)
r.raw
是urllib3.response.HTTPResponse的一个实例。我们可以通过查找响应的标头Content-length
或使用内置函数len()
来计算响应的长度。