【发布时间】:2015-04-23 08:03:17
【问题描述】:
我一直在尝试使用 Perl AnyEvent HTTP 模块和以下代码发出异步请求。
my $headers = {
'Accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language'=> 'en-us,en;q=0.5',
'Connection' => 'keep-alive'
};
$request = http_request (
GET => "$url",
timeout => 5, # seconds
# persistent => 1,
# keepalive => 1,
headers => $headers,
proxy => $proxyRef,
sub {
my ($body, $hdr) = @_;
}
);
我不断收到来自请求的以下响应:
{
'Reason' => 'Connection timed out',
'URL' => 'url requested',
'Status' => 595
};
我一直在检查 AnyEvent 文档以了解此错误的原因,但没有成功。除了在超时时重试的建议外,在此问题上找不到其他有用的线程,这会产生相同的结果。一个简单的 'wget' 可以在同一个 URL 上工作并且它还活着。谁能指出如何调试这个问题?
【问题讨论】:
-
如果将超时时间提高到 50 会发生什么?
-
同样的结果!
-
如何启动事件循环? $request 不是
my-ed,它在其他地方使用过吗?如果您的代码示例实际上是一个最小的可运行脚本,这将非常有帮助。
标签: perl http asynchronous anyevent