就目前而言, C++最好用的 HTTP 客户端库是什么?

2020-02-05 22:37:59 +08:00
 fyyz
我觉得最好的 HTTP 客户端库是 python 的 requests,只要一行 import 再加一行调用就能发起一个 HTTP 请求。

有没有简单好用的 C++ HTTP 库?不要求语法和 requests 类似,只要简单好用就行,还有就是最好支持 http/2。
10676 次点击
所在节点    C++
11 条回复
Buges
2020-02-05 22:46:03 +08:00
libcurl ?
或者 vcpkg 搜 http 有一堆,你找找看。
fyyz
2020-02-05 22:53:19 +08:00
@Buges 我就是觉得 libcurl 太难用了才提问的,post 还要自己手动拼接+转义。
CismonX
2020-02-05 22:55:16 +08:00
我最近一直在用基于 boost.asio 的 boost.beast,功能强大,简单好用,缺点是比较臃肿
Buges
2020-02-05 23:04:02 +08:00
@fyyz 那你可以看看这个
https://github.com/yhirose/cpp-httplib
论简单好用 cpp 实在不擅长。
owwlo
2020-02-05 23:16:21 +08:00
工作的地方因为有 c++ http 的硬性需求,也做过一段时间的调查,最后选择了 beast。beast 的另一外一个好处是 headers only,可以放在自己的源代码里,不用考虑库版本迁移,并且是 boost 组件之一,将来不同系统版本乃至跨平台只要有 boost 就能直接用!
useben
2020-02-05 23:46:11 +08:00
我这里是封装 libevent
zhuangzhuang1988
2020-02-05 23:49:49 +08:00
owwlo
2020-02-06 00:01:14 +08:00
看到上面 @Buges 提到了 cpp-httplib,这个也非常非常棒!同样是 headers only 而且 API 用起来超简单,beast 需要你自己对 API 再包装一层达到类似 cpp-httplib 例子里的效果(类似例子在 https://github.com/boostorg/beast/blob/develop/example/http/server/ )。当初没有选择 cpp-httplib 的原因是:1. 个人维护,怕过几年没人继续维护这个工程了,升级会是个大问题,因为我们也是从 pion 迁移过来的,pion 就是个人维护然后放弃了。2. 不能在 gcc4.8 上编译,[捂脸 /逃]我们的一种系统只有 4.8。除此之外,个人项目墙裂推荐!
Tyanboot
2020-02-06 00:31:03 +08:00
之前用过 https://github.com/whoshuu/cpr 这个, 也挺好使, 只不过目前还不支持 HTTP2.
mattx
2020-08-11 12:57:31 +08:00
@owwlo 最后用 cpp-httplib 还是 beast ?
owwlo
2020-08-11 13:28:25 +08:00
@mattx 工作上最后用了 beastbeast,因为上面提到的两点原因

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/642395

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX