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

Ответить