On 26.10.2013, at 23:58, Alessandro Gorohovski <[email protected]> wrote:
> Уважаемое сообщество,
> Добрый вечер!
>
> Подскажите,
> можно ли надежно и как определить размер (объем)
> предполагаемого к скачиванию контента
> (например, 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'
> :(
>
Если content-length нет, то значит там ответ transfer-encoding: chunked.
а это, в свою очередь, означает, то вы не можете заранее узнать какой длины
будет ответ, пока не считаете его целиком.
--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org