V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fyyz
V2EX  ›  C++

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

  •  1
     
  •   fyyz · 2020-02-05 22:37:59 +08:00 · 11168 次点击
    这是一个创建于 1744 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我觉得最好的 HTTP 客户端库是 python 的 requests,只要一行 import 再加一行调用就能发起一个 HTTP 请求。

    有没有简单好用的 C++ HTTP 库?不要求语法和 requests 类似,只要简单好用就行,还有就是最好支持 http/2。
    11 条回复    2020-08-11 13:28:25 +08:00
    Buges
        1
    Buges  
       2020-02-05 22:46:03 +08:00 via Android
    libcurl ?
    或者 vcpkg 搜 http 有一堆,你找找看。
    fyyz
        2
    fyyz  
    OP
       2020-02-05 22:53:19 +08:00
    @Buges 我就是觉得 libcurl 太难用了才提问的,post 还要自己手动拼接+转义。
    CismonX
        3
    CismonX  
       2020-02-05 22:55:16 +08:00 via iPhone   ❤️ 1
    我最近一直在用基于 boost.asio 的 boost.beast,功能强大,简单好用,缺点是比较臃肿
    Buges
        4
    Buges  
       2020-02-05 23:04:02 +08:00 via Android   ❤️ 1
    @fyyz 那你可以看看这个
    https://github.com/yhirose/cpp-httplib
    论简单好用 cpp 实在不擅长。
    owwlo
        5
    owwlo  
       2020-02-05 23:16:21 +08:00 via iPhone
    工作的地方因为有 c++ http 的硬性需求,也做过一段时间的调查,最后选择了 beast。beast 的另一外一个好处是 headers only,可以放在自己的源代码里,不用考虑库版本迁移,并且是 boost 组件之一,将来不同系统版本乃至跨平台只要有 boost 就能直接用!
    useben
        6
    useben  
       2020-02-05 23:46:11 +08:00
    我这里是封装 libevent
    zhuangzhuang1988
        7
    zhuangzhuang1988  
       2020-02-05 23:49:49 +08:00
    owwlo
        8
    owwlo  
       2020-02-06 00:01:14 +08:00   ❤️ 1
    看到上面 @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
        9
    Tyanboot  
       2020-02-06 00:31:03 +08:00
    之前用过 https://github.com/whoshuu/cpr 这个, 也挺好使, 只不过目前还不支持 HTTP2.
    mattx
        10
    mattx  
       2020-08-11 12:57:31 +08:00   ❤️ 1
    @owwlo 最后用 cpp-httplib 还是 beast ?
    owwlo
        11
    owwlo  
       2020-08-11 13:28:25 +08:00 via iPhone
    @mattx 工作上最后用了 beastbeast,因为上面提到的两点原因
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5391 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 08:02 · PVG 16:02 · LAX 00:02 · JFK 03:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.