0

***更新后的代码,具有恢复功能* *

    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,但仍然存在一些错误。如果我们有部分文件,需要恢复文件下载。

这是我尝试过的代码,但不知道从哪里开始,因此在这方面的任何快速想法确实会有很大帮助。请帮助解决这个问题。

4

1 回答 1

1

方法mirrorLWP::UserAgent_ 文档引用:

此方法将获取由 $url 标识的文档并将其存储在名为 $filename 的文件中。

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

请参阅 的源代码mirror,它可以正确处理截断/部分下载的文件。

于 2012-05-15T09:42:42.500 回答