使用 C++ 的 http 客户端的默认方法

Default approach to a http client with c++

看看 Java、C# 和 Python 等高级语言如何作为客户端处理 http 请求,我想知道今天 c++ 中的默认方法是什么。

我的要求是:

OAuth2 支持我很快就抓到了并接受了,这需要实现。

我找到了一些库,但其中大多数看起来都相当过时并且有点 "unprofessional"。

下面列出了我能找到的内容以及我的想法:

libcurl

虽然这似乎是最专业的选择。 C API 很糟糕,当然不存在 OAuth 支持。但这似乎是我目前的最佳选择。

心肺复苏术

一个 libcurl 的 c++ 包装器,它似乎是一个维护得相当糟糕的库,这是一个 nono。它似乎有 https 支持,但在 github md 中它说它没有。

curlpp

这个项目似乎不再维护了。

boost::asio

如果我没记错的话,这里的事我都得亲力亲为。我正在努力得到某事。完成了,不想重新发明轮子。

Qt

虽然看起来不错,但我有点不愿意使用 UI 框架进行通信。但也许我错了。

cpprestsdk

虽然一开始看起来很适合我的目的,但不支持 OAuth2 客户端凭据。整个 OAuth2 部分被标记为实验性的。几年来就是这种情况。似乎未完成且维护不善。

结论

所以 c++ 可能不是您处理 http 客户端的常用语言,但这是一个非常基本的东西,我对那里的库感到惊讶。

我错过了什么大事吗?

这里的默认方法是什么?有没有更好的选择"high level"。还是默认方法采用低级别 boost::asio 风格以获得最佳性能?

我认为您跳过了最常见的库,例如 crow,用于小型项目和快速开发。它非常有限,但提供了足够的功能。

Poco Project 是我遇到的最成熟的库,为成熟的项目提供了很多功能。