Размер необработанного ответа в байтах
мне нужно сделать HTTP-запрос и определить размер ответа в байтах. Я всегда использовал request
для простых HTTP-запросов, но мне интересно, могу ли я достичь этого с помощью raw?
>>> r = requests.get('https://github.com/', stream=True)
>>> r.raw
моя единственная проблема в том, что я не понимаю, какие необработанные возвраты или как я мог бы подсчитать этот тип данных в байтах? С помощью request
и raw правильный подход?
2 ответов
просто возьми 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
r.raw
пример urllib3.ответ.Объект HttpResponse. Мы можем подсчитать длину ответа, посмотрев заголовок ответа Content-length
или используйте встроенную функцию len()
.