我正在尝试使用下载文件HTTP::UserAgent,但到目前为止我的所有尝试都以下列错误结束.
Malformed UTF-8
Run Code Online (Sandbox Code Playgroud)
我试图使用getstoresub,在:simple子集中导出.
getstore($upstream ~ %module<link>, $dist.absolute);
Run Code Online (Sandbox Code Playgroud)
并HTTP::UserAgent直接使用该类.
my $ua = HTTP::UserAgent.new;
$dist.spurt: $ua.get($upstream ~ %module<link>).content;
Run Code Online (Sandbox Code Playgroud)
在查看模块的源代码时,我找到了一个:bin参数.get,所以我自然也尝试过.
$dist.spurt: $ua.get($upstream ~ %module<link>, :bin).content;
Run Code Online (Sandbox Code Playgroud)
但即使有了这个:bin论点我也得到了Malformed UTF-8错误.
我如何使用下载二进制文件HTTP::UserAgent?
编辑:为了给出一些更多的上下文,$dist它只是另一个IO::File用它创建的对象tempdir.IO.add("dist.tar.gz").我也试过.open这个文件,并.spurt在IO::Handle代替IO::File,但是这回同样的错误.添加:bin到$dist.open呼叫似乎也没有效果.
with ($dist.open(:w)) {
LEAVE { .close }
.spurt: $ua.get($upstream ~ %module<link>, :bin).content;
}
Run Code Online (Sandbox Code Playgroud)
我在这种特殊情况下使用的URL是https://cpan.metacpan.org/authors/id/V/VR/VRURG/Perl6/OO-Plugin-v0.0.5.tar.gz,但它似乎并不仅限于此URL.
尝试使用 :bin 选项来执行突发例程。这对我有用(使用http)
'/tmp/test.tar.gz'.IO.spurt( $ua.get('http://cpan.metacpan.org/authors/id/V/VR/VRURG/Perl6/OO-Plugin-v0.0.5.tar.gz').content, :bin);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
324 次 |
| 最近记录: |