Следующая программа дает сбой при попытке перейти на веб-сайт https, для которого требуется обычная проверка подлинности.
use Mojo::UserAgent;
my $ua = Mojo::UserAgen->new;
my $user = "foobar";
my $pass = "Cant#change";
my $url = "https://$user:$pass\@site.foo.com";
my $tx = $ua->get($url);
if (my $res = $tx->success) {
say $res->body;
}
else {
my ($message, $code) = $tx->error;
say $code ? "$code response $message" : "Connection error: $message";
}
Когда я запускаю с MOJO_USERAGENT_DEBUG=1, я получаю следующий вывод:
-- Blocking request (https://foobar:cant#[email protected])
-- Connect (https:foobar:Cant:443)
Connection error: Couldn't connect
Использование Mojolicious 3.35, обновленного с CPAN. К сожалению, пароли, скорее всего, будут содержать «специальные символы» (ascii #!@%^& и т.п.), и изменение пароля на нечто, не содержащее символ #, невозможно. Веб-сервер правильно обрабатывает запрос в веб-браузерах, поэтому я не думаю, что это проблема конфигурации веб-сервера.
Так есть ли другой способ добиться этого в Mojo?