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

Default approach to a http client with c++

本文关键字:默认 方法 客户端 http c++ 使用      更新时间:2023-10-16

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

我的要求是:

  • 用于 REST 接口的 HTTP 客户端
  • 基于 SSL 的 HTTP
  • 支持 OAuth2 客户端凭据

OAuth2支持我很快就刮擦并接受了,这需要实施。

我找到了许多图书馆,但其中大多数似乎都相当过时,有点"不专业"。

因此,以下是我可以找到的内容列表以及我对这些想法的列表:

库尔

虽然这似乎是最专业的选择。C API 是一个无赖,当然 OAuth 支持不存在。但这似乎是我现在的最佳选择。

心肺复苏术

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

柯尔普

此项目似乎不再维护。

提升::亚西奥

如果我没记错的话,我必须在这里自己做所有事情。我正试图得到sth。完成了,不想重新发明轮子。

Qt

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

CPPRESTSDK

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

结论

因此,c++可能不是您使用http客户端的常用语言,但这是一件非常基本的事情,我对那里的库感到惊讶。

我错过了什么大事吗?

默认方法是什么?有没有更好的"高级"选择。还是默认方法这样做是低级 boost::asio 风格以获得最佳性能?

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

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