文件大小的测试在这里有意义吗?我在下载时试图切断连接,但看起来从未达到尺寸测试。
#!/usr/bin/env perl
use warnings;
use strict;
use 5.012;
use LWP::Simple;
my $url = 'http://www.kernel.org/pub/linux/kernel/v2.6/next/patch-v2.6.34-rc5-next-20100428.bz2';
my $file = 'next_kernel.bz';
my $file_size = '3462166';
my $response = getstore( $url, $file );
if ( is_success $response ) {
if ( $file_size == -s $file ) {
say "OK";
}
else {
say "Not OK";
}
}
答案 0 :(得分:2)
如果您只是想练习测试代码,请输入错误的文件大小并断言您的下载不是“OK”。如果你想测试中止连接会发生什么,你需要一个更大的文件 - 一个2342字节的下载应该只需要几分之一秒。
答案 1 :(得分:1)
这很奇怪,我得到了和你一样的结果。我没有解决方案,但我在这里报告了一些黑客攻击你的问题。
发生的事情是保存的文件比预期的要大,并且没有连接中断。尝试使用bunzip2即使在将所得文件截断为所需大小后也会出错。
通过将LWP :: UserAgent与:content_file参数一起使用到get()方法,可以获得完全相同的结果。同样再次向$ ua对象添加response_data处理程序。
但是以下命令让我得到了很好的结果:
GET http://www.kernel.org/pub/linux/kernel/v2.6/next/patch-v2.6.34-rc5-next-20100428.bz2> next_kernel.bz
由于GET是基于LWP的lwp请求脚本,如果你愿意深入研究它,你可以通过检查它的代码来找到答案。
希望这会对你有所帮助。
答案 2 :(得分:0)
我认为它没有受到伤害,但我确信如果连接中止,is_success
将不会返回true。