| А может существует способ при котором можно было бы управлять количество
| байт скачиваемого контента,

Можно так сделать  LWP::UserAgent->max_size($bytes)
"Get/set the size limit for response content."

27 октября 2013 г., 11:44 пользователь Alessandro Gorohovski <
[email protected]> написал:

> Mons Anderson <[email protected]> писал(а) в своём письме Sun, 27 Oct 2013
> 01:30:14 +0300:
>
>
>  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.
>> а это, в свою очередь, означает, то вы не можете заранее узнать какой
>> длины будет ответ, пока не считаете его целиком.
>>
>
> Печально.
> А может существует способ при котором можно было бы управлять количество
> байт скачиваемого контента, например, загрузив не более 20 kb, прекращать
> прием данных
> (разорвать соединение принудительно)
> ?
>
> --
> ANG
>
> --
> Moscow.pm mailing list
> [email protected] | http://moscow.pm.org
>



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

Ответить