2011-04-20 153 views
2

我在通過Perl獲取表單結果時遇到了一些困難。我相信我已經成功地找到了表單並將我想要的值提交給適當的字段,但我不確定如何將響應對象轉化爲有用的東西(如果我將其打印出來,則顯示如下)。解析HTTP:響應對象

HTTP::Request=HASH(0x895b8ac)

下面是相關代碼(假設$網址是正確的)


    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有用嗎?

謝謝!

回答

2

要在點擊引用HTML::Form docs

點擊的結果是,如果你想獲得服務器的響應,可以被傳遞到LWP::UserAgentHTTP::Request對象。

所以,你可以這樣做:

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」)。

+0

好吧,當我運行該代碼時,我得到「不能使用HTTP :: Request對象作爲URI」。我正試圖從提交表格 – 2011-04-20 04:32:49

+0

@Ross中得到結果,對不起,錯誤的方法。當你已經有一個請求對象時,你使用'request'。 – cjm 2011-04-20 04:35:07

+0

啊好的。謝謝!這工作。有沒有辦法獲得結果中的字段列表? – 2011-04-20 04:39:09