解析HTTP:响应对象

时间:2011-04-20 03:48:32

标签: perl cgi html-form lwp-useragent

通过Perl从表单中获取结果时遇到一些困难。我相信我已成功找到表单并将我想要的值提交给相应的字段,但我不确定如何将响应对象转换为有用的东西(如果我将其打印出来,则会显示如下)。

HTTP::Request=HASH(0x895b8ac)

以下是相关代码(假设$ url是正确的)


    my $ua = LWP::UserAgent->new;
    my $responce = $ua->get($url);
    my @form = HTML::Form->parse($responce);
    my $chosen = $form[0];
    $chosen->value('netid', $user);
    my $ro = $chosen->click('Search');

我可以做些什么让$ ro有用?

谢谢!

1 个答案:

答案 0 :(得分:2)

点击HTML::Form docs点击:

  

单击的结果是HTTP::Request对象,如果要获取服务器响应,则可以将其传递给LWP::UserAgent

所以你可以这样做:

my $ua = LWP::UserAgent->new;
my $response = $ua->get($url);
my @form = HTML::Form->parse($response);
my $chosen = $form[0];
$chosen->value('netid', $user);
my $ro = $chosen->click('Search');

# If you want to see what you're sending to the server:
print $ro->as_string;

# Fetch the server's response:
$response = $ua->request($ro);

您接下来对$response的处理取决于您要做的事情。

P.S。 “响应”通常拼写没有C.但HTTP确实有拼写错误的历史。 (我在看着你,“Referer”。)