AnyEvent :: HTTP
使用perl 5.10在Debian和Centos上试用
之后不是声音
perl -Mstrict -we 'use AnyEvent::HTTP; http_get "http://www.nethype.de/", sub { print $_[1] }; sleep 20'
有什么东西从根本上打破了模块,或者我是否需要更新的perl版本,虽然我会期待它的投诉?
编辑:
所以我需要事件循环,有一些简单的例子可以演示AE::HTTP
用法吗?
问题是sleep
,不是AnyEvent的一部分,不执行允许AnyEvent :: HTTP异步获取的事件循环.当您阻止时,您希望阻止使用AE感知的东西,例如条件变量.
该程序创建一个调用的条件变量$exit_wait
,然后发出HTTP请求.在发出请求并收到响应时,程序可以继续运行.
一旦程序到达需要来自HTTP请求的信息的点,它就调用recv
条件变量.这允许在HTTP请求也完成时触发回调.它只是转储$headers
哈希值.
在这种情况下,我编写了它,以便回调也send
对条件变量执行,这会导致程序结束其recv
调用并继续.没有它,程序将处于无休止的等待状态.
如果不了解您的应用程序,我无法进一步提升.
use strict; use warnings; use AnyEvent::HTTP; use Data::Dump; STDOUT->autoflush; my $exit_wait = AnyEvent->condvar; my $handle = http_request GET => 'http://www.nethype.de/', sub { my ($body, $headers) = @_; dd $headers; $exit_wait->send; }; # Do stuff here $exit_wait->recv;