【问题标题】:LWP::Useragent timeout with HTTP::HeadersLWP::Useragent 超时与 HTTP::Headers
【发布时间】:2012-10-22 20:16:07
【问题描述】:

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

无法通过包“HTTP::Headers”定位对象方法“timeout” /usr/share/perl5/HTTP/Message.pm 第 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";
}

【问题讨论】:

    标签: perl


    【解决方案1】:

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

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

    【讨论】:

    • 是的,你是对的!现在可以完美运行。我确实在“HTTP::Headers”中设置了超时,而不是我应该设置的“LWP::UserAgent”。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-02
    • 2010-09-09
    • 2011-09-24
    • 2013-10-09
    • 1970-01-01
    • 1970-01-01
    • 2013-02-26
    相关资源
    最近更新 更多