1

我写了一个连接到 URL 的小脚本,发布一些 xml 数据并等待响应,到目前为止一切都很好,我需要设置超时,但我认为我做错了,因为我收到了以下错误消息:

无法通过 /usr/share/perl5/HTTP/Message.pm 第 644 行的包“HTTP::Headers”找到对象方法“超时”。

这是我的小代码:

#!/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";
}
4

1 回答 1

2

您需要为 LWP::UserAgent 设置超时。

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

my $response = $ua->request($request);
...
于 2012-10-22T12:16:02.270 回答