[email protected] <[email protected]> писал(а) в своём письме Sat, 26 Oct 2013 23:03:00 +0300:

А  length(Encode::encode_utf8($response->as_string)) когда запретили? Это если в байтах, конечно.

Никто не запрещал, конечно.

Но зачем загружать все, e.g. ~5Gb контента, чтобы найти его длину?
(да и памяти может не хватить)

Все дело в том, что
Нужно хотя бы первые 20 килобайт (или меньше)
а дальше можно не скачивать.


Суббота, 26 октября 2013, 22:58 +03:00 от "Alessandro Gorohovski" <[email protected]>:
Уважаемое сообщество,
Добрый вечер!

Подскажите,
можно ли надежно и как определить размер (объем)
предполагаемого к скачиванию контента
(например, html-страницы) без загрузки всей страницы.


Я сейчас пользуюсь

my $agent = LWP::UserAgent->new;

my $request = HTTP::Request->new( GET => $url );
$request->header('Accept' => 'text/html');

my $response = $agent->request( $request );
$response->is_success || print FILE_ERR "$id\t$url:\t",
$response->message, "\n";

И далее парсим
$response->headers_as_string

на предмет 'Content-Length'

Но, к сожалению удручает то, что не всегда заголовок скачиваемой страницы
содержит поле  'Content-Length'
:(

Спасибо,
ANG
--
Moscow.pm mailing list
[email protected] |  http://moscow.pm.org




--
ANG
--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить