基于上次写的关于php的libevent扩展的应用,我实现了一个异步的http请求类。
使用示例
如下,在request的时候能够定义请求完成之后的callback函数。
$base
);
for($i = 0; $i < 10; $i++) {
$client = new AsyncHttpClient($uri, $config);
$client->request(function($result) {
echo "Result len:";
echo strlen($result['response']);
// parse response with Zend_Http_Response
$response = Zend_Http_Response::fromString($result['response']);
echo $response->getBody();
echo "\n";
});
}
event_base_loop($base);
echo "done\n";
目前的实现比较初级,只做了get方法的封装,如果需要http上传或者post,还需要另外实现。另外这个类也需要php的libevent扩展。
Update 2011.11.17
将这个类修改为继承自Zend_Http_Client,这样我可以少写一些代码,顺带也实现了文件http上传以及post(未经测试),代码中的使用示例也已经更新。
本文介绍了一个基于libevent扩展的PHP异步HTTP请求类的实现。该类封装了GET请求,并通过回调函数处理响应。此外,还展示了如何利用Zend_Http_Client进行文件上传和POST请求。
438

被折叠的 条评论
为什么被折叠?



