gpt4 book ai didi

perl - 使用 LWP::UserAgent 发布到表单没有响应(moSTLy)

转载 作者:行者123 更新时间:2023-12-02 02:01:53 26 4
gpt4 key购买 nike

这是我的困境:我正在尝试填写 Web 表单并使用 LWP::UserAgent 从该表单获取结果。这是我的代码示例:

#!/usr/bin/perl -w

use strict;
use LWP;
use HTTP::Request::Common;
use LWP::Debug qw(+);

my $ua = LWP::UserAgent->new(protocols_allowed=>["https"]);

my $req = POST 'https://their.securesite.com/index.php',
[ 'firstName' => 'Me',
'lastName' => 'Testing',
'addressLine1' => '123 Main Street',
'addressLine2' => '',
'city' => 'Anyplace',
'state' => 'MN',
'zipCode' => '55555',
'card' => 'visa',
'cardNumber' => '41111111111111111',
'ccv2' => '123',
'exp_month' => '07',
'exp_year' => '2015',
'shared_key' => 'hellos',
];

my $response = $ua->request($req);

print $response->is_success() . "\n";
print $response->status_line . "\n";
print $response->content . "\n";

当我运行它时,我返回 200 OK 和成功的“1”,但不是来自表单的响应页面。只是结束标签:

</body>
</html>

这可能是因为表单页面和响应页面都具有相同的 URL?我是 LWP 的新手,所以我在这里捕获了救命稻草。它可能仍在客户端,但我也想排除我端的任何问题。

提前感谢你们提供的任何帮助 - 我被谷歌搜索出来了。

最佳答案

如果可以使用Mojo::UserAgent (Mojolicious 工具套件的一部分)代码如下所示。请注意,您可能需要 IO::Socket::SSL 才能使用 HTTPS。

#!/usr/bin/env perl

use strict;
use warnings;

use Mojo::UserAgent;

my $ua = Mojo::UserAgent->new;

my $tx = $ua->post('https://their.securesite.com/index.php', form =>
{ 'firstName' => 'Me',
'lastName' => 'Testing',
'addressLine1' => '123 Main Street',
'addressLine2' => '',
'city' => 'Anyplace',
'state' => 'MN',
'zipCode' => '55555',
'card' => 'visa',
'cardNumber' => '41111111111111111',
'ccv2' => '123',
'exp_month' => '07',
'exp_year' => '2015',
'shared_key' => 'hellos',
});

if ( $tx->success ) {
print $tx->res->body;
# or work with the resulting DOM
# my $dom = $tx->res->dom;
} else {
my ($err, $code) = $tx->error;
print $code ? "$code response: $err\n" : "Connection error: $err\n";
}

界面有点不同,但它有很多不错的功能,包括Mojo::DOM用于解析响应 HTML 的集成。

关于perl - 使用 LWP::UserAgent 发布到表单没有响应(moSTLy),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16840505/

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