所以我在StackOverflow和Google上浏览了搜索结果的页面和页面,我遇到了很少适合资源受限的嵌入式环境(例如ARM)的C / C ++ HTTP客户端库。然而,我遇到了很多适合桌面类应用程序的东西。
基本上,我正在使用简单,易用且方便的API来进行HTTP GET,POST和HEAD调用(支持身份验证,下载恢复和有效负载压缩)。如果它具有较小的占用空间(即没有或最小的外部依赖性)并且是开源的(具有许可许可证),那将是理想的。
此处列出了我目前遇到的情况及其不适合的原因 -
那里有没有我不知道的图书馆,或者我最好自己滚动?
答案 0 :(得分:13)
您是否看过mbed上的HTTPClient?看起来几年前有很多原件的叉子没有保留。我没用过这个......
答案 1 :(得分:3)
我可以描述一下我用于这些任务的内容。
curl - 如果你很懒,你可以只使用内置二进制文件下载并且无需做任何事情,它有非常简单的标题和很多例子。您将需要3-4个已构建的库和标头。没有外部依赖。所以,我认为它太低级了,但根本不是重量级的。
boost.asio - 非常有趣的实现范例,非常简单和干净。但我会说它也是低级别的。然后更难以卷曲。并且需要使用boost,这是你想要避免的外部依赖,我想。
poco - http服务器的最佳解决方案。它是高级别的,在您加入应用程序之后,您只需要实现几个虚拟功能,完成所有其他工作(和线程管理)。 Poco为应用程序管理,线程/进程管理提供了很多东西,它非常简单易用,我甚至会说它有类似java的界面。是的, poco 存在外部依赖关系,但我认为这是学习完美库的机会。不过,对于http客户来说,它真的很重。
这就是我对HTTP的所有C ++体验。计算你只需要客户端而不需要依赖,我会建议你看一下 libcurl 库。它具有跨平台,简单,无依赖性和低级别,足以满足您对网络的所有需求。如果你有时间 - 看看Poco,我相信你会像我一样爱上这个图书馆。 希望这会有所帮助。
答案 2 :(得分:3)
我发现了另一个,只需要打包到lib中。 没有测试它,但可能值得一看: