gpt4 book ai didi

http - 如何使用 HTTP::UserAgent 下载二进制文件

转载 作者:可可西里 更新时间:2023-11-01 15:18:10 24 4
gpt4 key购买 nike

我正在尝试使用 HTTP::UserAgent 下载文件,但到目前为止我的所有尝试都以以下错误结束。

Malformed UTF-8

我已经尝试使用 getstore sub,在 :simple 子集中导出。

getstore($upstream ~ %module<link>, $dist.absolute);

并直接使用 HTTP::UserAgent 类。

my $ua = HTTP::UserAgent.new;

$dist.spurt: $ua.get($upstream ~ %module<link>).content;

在浏览 the source code 时模块的,我 found a :bin argument for .get ,所以我自然也试过了。

$dist.spurt: $ua.get($upstream ~ %module<link>, :bin).content;

但即使使用 :bin 参数,我也会收到 Malformed UTF-8 错误。

我将如何使用 HTTP::UserAgent 下载二进制文件?

编辑:为了提供更多上下文,$dist 只是另一个 IO::File 对象,由 tempdir 创建.IO.add("dist.tar.gz").我也试过 .open 这个文件和 .spurtIO::Handle 而不是 IO::File ,但这返回了相同的错误。将 :bin 添加到 $dist.open 调用似乎也没有效果。

with ($dist.open(:w)) {
LEAVE { .close }
.spurt: $ua.get($upstream ~ %module<link>, :bin).content;
}

在这种特殊情况下,我使用的 URL 是 https://cpan.metacpan.org/authors/id/V/VR/VRURG/Perl6/OO-Plugin-v0.0.5.tar。 gz,但似乎并不仅仅局限于这个URL。

最佳答案

尝试为 spurt 例程使用 :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);

关于http - 如何使用 HTTP::UserAgent 下载二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54245138/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com