Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Andrey Sapozhnikov                   2:5020/400     06 Dec 2002  22:00:30
 To : Dmitry Suhodoev
 Subject : Re: как контролироват  ь скачку через LWP?
 -------------------------------------------------------------------------------- 
 
 Dmitry Suhodoev wrote:
 
 > заказываю я, пpедположим, файлик чеpез LWP, а весь он мне не нужен, нужен
 > только опpеделенный кусок сначала. как мне скpиптом пpеpвать скачку, когда я
 > достиг нужного мне объема?
 
 Во первых просить у сервера не файл целиком, а нужный кусок. Для
 чего в заголовок запроса добавить: Range: bytes=xxx-yyy, например:
 
 my $req = HTTP::Request->new(GET => 'http://www.somewhere.net/file');
 
 $req->header('Range' => "bytes=$from-$to");
 
 После чего проверять в ответе, принял ли сервер эту рекомендацию
 к действию или нет.
 
 my $resp = $ua->request($req);
 
 $resp->is_success or die "Error";
 
 if ($resp->code == 206) { # PARTIAL_CONTENT
      # Ага, сервер вернул только запрошенный кусок
 } else {
      # Сервер вернул все
 }
 
 Hу и во вторых. Если сервер не умеет возвращать часть
 файла, то можно использовать callback функцию (см.
 perldoc LWP::UserAgent на предмет callback).  Функция
 должна сама складировать полученные данные в $response->content,
 а в нужный момент инициировать исключение (die) и
 процесс перекачки прервется.
 
 И в третьих, забудьте все, что я сейчас написал. Есть
 документированный способ сделать это с помощью метода
 max_size или передав максимальный размер в качестве
 третьего аргумента в метод request (второй аргумент
 может быть undef). См. perldoc LWP::UserAgent ;-)
 
 Андрей
 
 --- ifmail v.2.15dev5
  * Origin: Demos online service (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 как контролировать скачку через LWP?   Dmitry Suhodoev   06 Dec 2002 22:42:44 
 Re: как контролироват ь скачку через LWP?   Andrey Sapozhnikov   06 Dec 2002 22:00:30 
 как контролировать скачку через LWP?   Phil Kulin   08 Dec 2002 01:52:40 
Архивное /ru.perl/6577834816df.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional