【问题标题】:C++ library for Asynchronous HTTP Client用于异步 HTTP 客户端的 C++ 库
【发布时间】:2012-12-24 07:17:35
【问题描述】:

我正在寻找一个 C++ 库来发送一个异步 HTTP 请求,这样主线程就不会被阻塞,并在 http url 请求完成后稍后通知。

请告知是否有任何 C++ 库来实现此异步 HTTP 客户端功能。

【问题讨论】:

  • 尝试 boost::asio,但我记得没有 http 实现,只有异步 tcp/udp
  • 我特别需要HTTP。
  • 请告诉我一个具有异步 HTTP 客户端功能的库。
  • 试试 libcurl 或 libcurlpp
  • 这些库有“异步”功能,我不这么认为?请确认。

标签: c++ http asynchronous


【解决方案1】:

libcurl 的“multi”接口可以在后台运行 HTTP 请求(它使用第二个线程,但效果是一样的)。首先,使用curl_multi_init 创建一个多句柄。然后,设置一个简单的句柄(使用curl_easy_init 创建它并使用curl_easy_setopt 设置URL 和其他选项)并调用curl_multi_add_handlecurl_multi_perform 将开始传输并立即返回,您可以致电curl_multi_info_read 获取您的轻松句柄的状态。完成后别忘了致电curl_multi_cleanup

http://curl.haxx.se/libcurl/c/libcurl-multi.html

【讨论】:

    【解决方案2】:

    库不必是异步的。只要它是线程安全的,您应该能够在单独的线程中执行您需要执行的任何操作,并使用线程原语稍后与主线程同步..

    【讨论】:

    • 这在某些情况下可能是正确的,但作为一种方法它不会扩展。
    猜你喜欢
    • 1970-01-01
    • 2017-12-15
    • 2017-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-31
    • 1970-01-01
    相关资源
    最近更新 更多