Тогда, Батенька, 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
