Я пытаюсь отправить форму PERL. Мне удалось отправить форму, но я получаю HTML-страницу, показывающую «Invalid Session Flow» после отправки формы. Если я отправлю из браузера, новая страница содержит другую форму.Неверный сеанс потока
Я не мог найти причину, по которой это сообщение может прийти. Можно ли устранить неполадки, если у меня нет доступа на стороне сервера? Или это нужно проверить со стороны сервера?
Мой код:
my $url = "https://MY_URL";
my $Browser = new LWP::UserAgent();
$Browser->ssl_opts(verify_hostname => 0,SSL_verify_mode => 0x00);
my $page = $Browser->get($url);
my $content = HTML::TreeBuilder->new_from_content($page->decoded_content) or die $!;
my $match = $content->find_by_attribute('name' => 'token');
my $token = $match->attr('value');
chomp($token);
my %fileds = ("DATA" => "STD111","token" => $token);
my $Page = $Browser->request(POST $url,\%fileds);
if ($Page->is_success){
print $Page->status_line."\n";
print $Page->content."\n";
}else{
print $Page->status_line."\n";
print $Page->message;
}
Ниже источники просмотренных страниц из FireFox
Начальная страница:
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-1">
<title>Website Title</title>
</head>
<body>
<form method="post" action="/">
<input type="hidden" name="token" value="5f75b4fb68ed">
<input name="stdname">
<input type="submit" value="Submit">
</form>
</body>
</html>
Выход я получаю:
200 OK
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-1">
<title>Website Title</title>
</head>
<body>
<form method="get" action="/">
ERROR: Invalid session flow<br>
<input type="submit" value="Relogin">
</form>
</body>
</html>
Фактическая страница Landing при представлении с помощью любого браузера:
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-1">
<title>Website Title</title>
</head>
<body>
<form method="post" action="/">
<input type="hidden" name="token" value="5f75b4fb68ed">
<input type="password" name="stdpass">
<input type="submit" value="Submit">
</form>
</body>
</html>
Для обработки форм я предлагаю использовать ['WWW :: Mechanize'] (https://metacpan.org/pod/WWW::Mechanize). – Miller