Тогда, Батенька, IO::Socket вам в помощь...


С почтением,
  Илья Винокуров

Понедельник, 28 октября 2013, 17:17 +02:00 от "Alessandro Gorohovski" 
<[email protected]>:
>Алексей Александров < [email protected] > писал(а) в своём письме 
>Mon, 28 Oct 2013 16:24:27 +0200:
>
>> | А может существует способ при котором можно было бы управлять 
>> количество
>> | байт скачиваемого контента,
>>
>> Можно так сделать  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
>>>
>>
>>
>>
>
>
>-- 
>ANG
>-- 
>Moscow.pm mailing list
>[email protected] |  http://moscow.pm.org


-- 
Илья Винокуров
-- 
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить