Как скачать `decoded_content`

*** ОБНОВЛЕННЫЙ КОД с функциональностью резюме * *

    my $ua = LWP::UserAgent->new;
    $ua->credentials('$ip:80', 'Realm', 'username', 'password');
    my $response = $ua->mirror($url,$newfile);
    if ($response->is_success) {
       print "Download Successfull.";
    }
    else {
        print "Error: " . $response->status_line;
    }

** * ** * ** СТАРЫЙ КОД * ** * ** * ** * ** * ** * *

    my $ua = LWP::UserAgent->new;
    $ua->credentials('$ip:80', 'Realm', 'username', 'password');
    my $response = $ua->get($url);
    if ($response->is_success) {
       print "Retrieved " .length($response->decoded_content) .
             " bytes of data.";
    }
    else {
        print "Error: " . $response->status_line;
    }

open my $fh, '>encoding(UTF-8)', $tmp;
print {$fh} $response->decoded_content;
close $fh;

if ( -e $tmp ) {
   my $filesize = ( stat $tmp )[9];
   my $origsize = $queue[$rec][1];

   if ( $filesize < $origsize) {
      print "Resuming download";
   ******************************************
  code for resuming the partly downloaded file...
   *******************************************
   }
   else {
      print "File downloaded correctly\n";
   }
}

Как я новичок в Perl, можно скачать decoded_content, хотя некоторые ошибки сохраняются. Необходимо возобновить загрузку файла, если у нас есть частичный файл.

Это был код, который я пробовал, но не знаю, с чего начать, поэтому любые быстрые мысли на этот счет действительно помогут. Пожалуйста, помогите в этом.

1 ответ

См метод mirror в LWP::UserAgent, Документация цитата:

Этот метод получит документ, идентифицированный $url, и сохранит его в файле с именем $filename.

my $response = $ua->mirror($url, $filename); # no single quotes around variables!

Смотрите исходный код для mirror, он правильно обрабатывает усеченные / частично загруженные файлы.

Другие вопросы по тегам