用于处理多个HTTP连接的C ++库

时间:2011-03-12 16:04:25

标签: c++ winapi http curl

我正在寻找一个库来处理多个同时进行的HTTP连接(在单个线程上使用),以便在Windows中使用C ++,因此它可以基于Win32 API。这适用于必须处理请求列表但始终保持4运行的客户端应用程序,直到列表完成为止。

到目前为止,我已经尝试了cURL(多接口),这似乎是我找到的最合适但我的问题是我可能有200个请求的队列,但我只需要一次运行4个。当一个请求可能需要2秒而另一个请求可能需要2分钟时,这会成为问题,因为您必须等待所有句柄并在一个块中接收所有请求的结果。如果有人知道这个方法,那将是非常有用的。

我也试过使用WinHTTP自己滚动但是我需要限制请求,因此理想情况下它们需要在单个线程上并使用WinHTTP不执行的数据的回调。

我发现能解决我所有问题的最好的事情是ASIHTTPRequest,但不幸的是它只是Mac OSX。

谢谢, Ĵ

4 个答案:

答案 0 :(得分:4)

你看过boost.asio吗? http://www.boost.org/doc/libs/1_46_1/doc/html/boost_asio.html

它意味着可以很好地扩展并具有http服务器示例: http://www.boost.org/doc/libs/1_46_1/doc/html/boost_asio/examples.html

答案 1 :(得分:3)

你试过Boost Asio吗? 是多平台和一流的性能,并有很好的HTTP示例。

http://www.boost.org/doc/libs/1_46_1/doc/html/boost_asio.html

答案 2 :(得分:0)

Asio是一个很棒的库,但它是通用的,HTTP示例只是:示例,不支持重定向,身份验证等。
我知道有两个基于Boost& amp;支持HTTP协议的Asio:cpp-netlibPion Network Library,但AFAIK既不直接支持您想要的内容。
如果您对使用libcurl感到满意,那么就应该很容易使用带有回调的“简单”界面并自己实现请求队列。

答案 3 :(得分:0)

libcurl的多接口完全支持您所要求的内容。