Я пытаюсь загрузить файл, используя HTTP::UserAgent
, но все мои попытки до сих пор заканчивались следующей ошибкой.
Malformed UTF-8
Я пытался использовать подпрограмму getstore
, экспортированную в подмножество :simple
.
getstore($upstream ~ %module<link>, $dist.absolute);
И напрямую используя класс HTTP::UserAgent
.
my $ua = HTTP::UserAgent.new;
$dist.spurt: $ua.get($upstream ~ %module<link>).content;
Просматривая исходный код модуля, я нашел аргумент :bin
для .get
, поэтому, естественно, я это тоже попробовал.
$dist.spurt: $ua.get($upstream ~ %module<link>, :bin).content;
Но даже с аргументом :bin
я получаю ошибку Malformed UTF-8
.
Как мне скачать бинарный файл, используя HTTP::UserAgent
?
EDIT : Чтобы придать дополнительный контекст, $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;
}
URL, с которым я работаю в данном конкретном случае, - https://cpan.metacpan.org/authors/id/V/VR/VRURG/Perl6/OO-Plugin-v0.0.5.tar.gz
, но, похоже, он не ограничивается только этим URL.