2010-12-06 5 views
4

Можно ли ограничить размер ответа httplib2? Например, если он видит тело HTTP над X байтами, соединение будет просто закрываться, не потребляя больше полосы пропускания. Или, возможно, загрузите первые X байтов файла.Ограничение размера ответа с помощью httplib2

+1

Запрос библиотеки может выполнять эту работу, легко импортировать запросы begin = requests.get ('http://example.com/') .iter_content (1024) .next() – 2012-06-25 04:48:40

ответ

5

Предполагая, что сервер отправляет размер тела ответа в поле заголовка ответа , вы можете сделать это самостоятельно.

Сначала позвоните Http.request(method="HEAD"), чтобы получить только заголовки, а не корпус. Затем проверьте поле ответа , чтобы узнать, находится ли он ниже вашего порога. Если это так, сделайте второй запрос с надлежащим способом GET или POST для извлечения тела; в противном случае возникает ошибка.

Если сервер не дает вам Content-Length (или лежит об этом), не похоже, что есть способ отключить загрузку после некоторого количества байтов.