【发布时间】:2011-01-16 02:52:29
【问题描述】:
我正在寻找一个现代 C++ HTTP 库,因为 C++ 包装器很难解决 libcurl 的缺点。基于已成为事实上的 C++ TCP 库的 Boost.ASIO 的解决方案是首选。
【问题讨论】:
-
嗨。只是想知道你最终使用了什么?我有一个类似的场景(需要 c++ http 客户端)。您最终是使用下面建议的 C++ 网络库还是其他库?谢谢。
-
是的,我使用了 cpp-netlib。它相当简约(或 very 简约文档缺少功能),因此您必须手动执行 HTTP 基本身份验证等操作(添加适当的标头而不是指定登录名/密码)。如果他们继续开发,这将是非常好的,而且它目前肯定可以使用(并且仅作为标题是一个很大的优势)。
-
作为记录,最近我遇到了 cpp-netlib 的问题,因为编译时间太长,即使是最简单的事情(使用 GCC)也需要超过 1 GB 的 RAM .所以至少将你的 get/post 函数隔离到一个单独的源模块中,你永远不需要修改或重新编译,并且不要在任何其他地方#include这个库,而不是在它的实现中。
-
两年来发生了很多事情,显然 cpp-netlib 明显领先。它现在可以构建为一个库,避免了那些由仅头文件模式导致的过多编译时间。 API 现在支持基于 Boost.Thread 和 futures 的某种异步模式。还支持流式传输正文(对于大型文档很重要),API 仍然易于使用,而且这个库似乎拥有包中最大的功能集。
-
我有一个小项目正在进行,我在空闲时间开发,但它处于早期阶段。 github.com/tghosgor/libashttp
标签: c++ http curl boost-asio