Я пытаюсь вызвать KeyForge API с помощью простой Perl-программы, но она не работает. Я использую то, что в документации LWP :: UserAgent:
use strict;
use warnings;
use LWP::UserAgent ();
my $ua = LWP::UserAgent->new;
my $response = $ua->get('https://www.keyforgegame.com/api/decks/');
if ($response->is_success) {
print $response->decoded_content;
}
else {
die $response->status_line;
}
Программа печатает:
500 Ошибка записи: в строке 16 test.pl.
Если я использую URL https://www.google.com или http://www.example.com,, это работает. HTML-код отображается правильно.
Если я использую эту простую программу PowerShell, она тоже работает:
$Url = "https://www.keyforgegame.com/api/decks/"
$decks = Invoke-RestMethod ($url)
$decks
Отображается:
данные подсчета
743719 {@ {name = Dr. "Старый" Джеффрис; расширение = 341; power_level = 0; цепи = 0; побед = 0; Потери = 0; ID = ec86db52-e41e-4e ...
Чего мне не хватает?
PS: я использую Perl 5.16.3 в Windows 10.
EDIT:
Спасибо за вашу помощь. Я наконец узнал, что происходит. Оказывается, у меня была очень старая версия Net :: HTTP (с 2013 года). Я обновил его, и теперь он работает «из коробки», без настройки агента, файлов cookie или электронной почты. Сообщение об ошибке на самом деле было от клиента, а не от сервера.