cpp_netlib 文档包含示例 HTTP客户端,但我发现它仅适用于阻止模式:
http_client::response response = client.get(request);
- 这(我猜)会在等待服务器响应时停止程序执行。我可以使用cpp_netlib 执行多个并发请求而不会生成多个线程吗?我的意思是一种非阻塞方式,比如循环调用io_service.poll()并使用回调处理程序来捕获响应 - 以及在等待响应时的一些额外处理。
答案 0 :(得分:0)
可以使用带异步标记的typedef以非阻塞方式处理异步连接:
typedef boost::network::http::basic_client<
boost::network::http::tags::http_async_8bit_udp_resolve
, 1, 0> http_client;
但是目前没有能力实现全功能的并发连接处理,回调和循环检查请求完成。不是当前的0.7版本的库,而不是下一个0.8。也许,这些功能将在cpp_netlib 0.9中实现。
有关详细信息,请查看cpp_netlib邮件列表archieve:http://sourceforge.net/mailarchive/message.php?msg_name=AANLkTingb%2BB06YVyK%3D-XYAcZsQ2sZc%3DE%3DTPhAgcfjrTb%40mail.gmail.com