Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用c++; 查看高级语言,如java、C++和Python如何处理HTTP请求作为客户端,我想知道C++中默认的方法是什么。_C++_Rest_Oauth 2.0_Httpclient - Fatal编程技术网

使用c++; 查看高级语言,如java、C++和Python如何处理HTTP请求作为客户端,我想知道C++中默认的方法是什么。

使用c++; 查看高级语言,如java、C++和Python如何处理HTTP请求作为客户端,我想知道C++中默认的方法是什么。,c++,rest,oauth-2.0,httpclient,C++,Rest,Oauth 2.0,Httpclient,我的要求是: REST接口的HTTP客户端 HTTP over SSL 支持OAuth2客户端凭据 我很快就理解并接受了OAuth2支持,这需要实现 我发现了很多图书馆,但其中大多数似乎都很过时,有点“不专业” 下面列出了我能找到的,以及我的想法: libcurl 而这似乎是最专业的选择。C API是一个垃圾,当然OAuth支持并不存在。但这似乎是我目前的最佳选择 CPR 一个用于LIbCURL的C++包装器,它看起来是一个维护得很差的库,它是一个NoNO。它似乎有https支持,但在git

我的要求是:

  • REST接口的HTTP客户端
  • HTTP over SSL
  • 支持OAuth2客户端凭据
我很快就理解并接受了OAuth2支持,这需要实现

我发现了很多图书馆,但其中大多数似乎都很过时,有点“不专业”

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

libcurl

而这似乎是最专业的选择。C API是一个垃圾,当然OAuth支持并不存在。但这似乎是我目前的最佳选择

CPR

一个用于LIbCURL的C++包装器,它看起来是一个维护得很差的库,它是一个NoNO。它似乎有https支持,但在github md中说它没有

curlpp

该项目似乎不再维护

boost::asio

如果我没弄错的话,这里的一切我都得自己做。我正在努力完成某件事,不想重新发明轮子

Qt

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

cpprestsdk

虽然从我的初衷来看,OAuth2客户端凭据是不受支持的。整个OAuth2部分标记为实验。几年来一直如此。似乎还没有完成,保养得很差

结论

也许C++不是你所做的HTTP客户端的常用语言,但这是一个基本的东西,我对这里的库感到惊讶。 我错过了什么大事吗


目前的默认方法是什么?是否有更好的“高级”选择。或者默认的方法是使用低级boost::asio风格来实现最佳性能?

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


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

我肯定忘记了poco。我以前在这件事上遇到过困难。虽然它看起来维护得很好,而且完全足够了,但“只实现一个http客户机”似乎有点大,但你说得有道理。从“完成事情”的角度来看,这将是一个非常合适的选择。这感觉像是一个伪装的问题,但可能只是我误读了它。是的,你是对的。我不知道这是不允许的。另一方面,我会很高兴看到这个话题的问题。如果你知道你需要做什么,在 LBCURL> <代码>上建立一个小的C++包装包是很容易的。我创建了一个非常简单的基类,它很容易构建(@),但我对
OAuth2
了解不够,无法添加对它的支持<不过,code>libcurl确实以某种方式支持它。至少它有一个
CURLOPT\u XOAUTH2\u承载
选项。