2012-10-22 48 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