2012-10-22 47 views
1

我寫了一個小腳本,connectts一個URL,職位一些XML數據,並等待響應,到目前爲止好,我需要設置超時時間,但我認爲我這樣做是錯誤的因爲我得到這個錯誤信息:LWP :: UserAgent的超時與HTTP ::頭

在 /usr/share/perl5/HTTP/Message.pm行無法找到對象的方法「超時」通過一攬子「HTTP ::頭」 644

這是我的一點代碼:

#!/usr/bin/perl 
use strict; 
use warnings; 

use LWP::UserAgent; 

my $msg =<< "EOT"; 
<?xml version="1.0" encoding="utf-8"?> 
EOT 

my $uri = "http://www.myhostexample.com/script"; 
my $request = HTTP::Request->new(POST => $uri); 
$request->content_type("text/xml"); 
$request->content($msg); 

my $response = LWP::UserAgent->new->request($request); 
$response->timeout(10); 
#print $response->content . "\n"; # debug 

if ($response->content =~ /<?xml/s) { 

    print "OK!\n"; 
} 
else { 

    print "BAD!\n"; 
} 

回答

1

您需要爲LWP :: UserAgent設置超時。

... 
my $ua = LWP::UserAgent->new(); 
$ua->timeout(10); 

my $response = $ua->request($request); 
... 
+0

是的,你說得對!現在工作完美無瑕。我確實在「HTTP :: Headers」中設置了超時而不是「LWP :: UserAgent」,因爲我應該有。謝謝! – bsteo