Windows 一分钟使用 C++ 发送 Http 请求

2021-08-20 12:03:19 +08:00
 nannanziyu
有人说 c++ 发 http 请求麻烦,我不太认同,我认为一分钟内能搞定的事情,无论如何也谈不上“麻烦”
为了帮助后来人,方便以后英文不太好,常使用中文搜索的同学找到答案,我单独发到这里

1. VS 新建一个 Cpp console 工程,工程右键 -> Manage nuget packager
2. 搜索 cpprestsdk,并 点击 install

3. 复制以下代码替换 main.cpp ,然后 F5

#include <iostream>
#include <cpprest/http_client.h>
int main()
{
web::http::client::http_client client(U("https://postman-echo.com/get?a=b"));
auto rsp = client.request(web::http::methods::GET).get();
auto body = rsp.extract_string().get();
std::wcout << rsp.status_code() << "\n" << body << std::endl;
}


全程录屏:
<amp-youtube data-videoid="yOqH2wtvzSo" layout="responsive" width="480" height="270"></amp-youtube>
SEO Area:
C++ 发 http 请求
Cpp 发 http 请求
怎么用 Cpp 发 http 请求
http 请求 cpp
http 请求 c++
7326 次点击
所在节点    C++
92 条回复
skinny
2021-08-20 18:56:12 +08:00
楼主你花太多情绪精力在和杠精、蠢又懒争论上了,没必要,我以前就遇过,他们会不停的立靶子,最后杠回他们自己最初的说法的……
debuggerx
2021-08-20 19:09:08 +08:00
理解楼主,太多时候看到新手提问,费劲编辑整理用最简洁清晰的方法和语言回复,结果对方来一句太复杂了,试都懒得试,感觉就像吞了苍蝇一样难受
angrylid
2021-08-20 19:09:30 +08:00
可是,确实就是麻烦啊。你说破天,它也是麻烦。
charlie21
2021-08-20 19:31:04 +08:00
cpp 岗位很少,和 java 岗位相比是降低数量级的少

至于 lz 这个情况嘛,纯属对方动手能力太弱又不承认。承认是不要想承认的了,最多只能承认 cpp 果然不是脚本语言、自己对 cpp 的情况判断不足,虽然但是即使如此 动手能力依然是无可置疑的: 不是我动手能力不行,而是 cpp 没有包管理器,cpp 标准库不行 😋
swsh007
2021-08-20 19:37:05 +08:00
delphi 悄悄路过
其实还有生意的
40EaE5uJO3Xt1VVa
2021-08-20 19:42:18 +08:00
v2ex 不再是个友好的社区。撕逼也没有意义,浪费时间。
levelworm
2021-08-20 19:56:11 +08:00
写 C/C++最适合的还是做相对底层的东西。
iyear
2021-08-20 20:01:50 +08:00
说句实话,没有你这个教程,零基础的人想搞个 http 请求,门槛确实高。尤其是刚入门编程的,可能做到一半就麻了
joshua7v
2021-08-20 20:19:04 +08:00
cpp 门槛确实相对高,
你已经熟练了这一套流程当然也不慢,
但你这一个流程里出任何状况都够新人卡一阵子的了,

当然我也不觉得用 cpp 发送请求这件事很麻烦,
麻烦的是要熟悉 cpp 那一套需要的背景知识太多了
lesismal
2021-08-20 21:03:00 +08:00
中毒的 cpper 千篇一律,清醒的工程师万里挑一。
lesismal
2021-08-20 21:07:24 +08:00
《一代宗师》里「老猿挂印回首望,关隘不在挂印,而是回头」。
工程师学习的 cpp 的过程,关隘不在挂印——比如精通 cpp 各种语法予以达到语言律师级别,关隘在回头。
mrsecond
2021-08-20 21:36:19 +08:00
@nannanziyu 多谢回复
LeeReamond
2021-08-20 22:15:34 +08:00
如同楼上老哥说的,cpp 语言本身问题事小,cpp 虽然严重不优雅,但 rust 出现后我们理解了 cpp 不烂。

但是缺乏统一标准,中央集中式的包管理器,以及可靠的编译链条,无论哪一个都是硬伤。
learningman
2021-08-20 23:05:08 +08:00
C++的包管理和构建简直是搞笑吧,make,cmake,pkgconfig,libtool
我是真弄不清这堆玩意儿
FACEB00K
2021-08-21 00:03:56 +08:00
我的想法💡是,遇上这个问题,首先考虑语言本身的标准库支不支持该功能,然后去寻找主流的第三发库,然后下载,配环境;之后,回到语言本身,肯定是调用库里的某个类,再调用某个类的某个函数,了解要传递的参数,看看文档,看看 demo,搜搜教程;接着就是自己测试了。

不论是哪门编程语言,都应该是真么思考的吧
inframe
2021-08-21 00:19:32 +08:00
cpp 开发综合项目不适合新手使用;
python 3 行就行了哈哈
xy90321
2021-08-21 00:22:27 +08:00
其实道理很简单,对于“懂得人”来说确实就是不麻烦
剩下只是“懂得人”多寡的问题
这就好比,对于懂得人来说,用快速傅里叶变换做个频谱分析也就是信手拈来的事情
对我来说可能就是:什么是快速傅里叶变换???
gyf304
2021-08-21 01:58:14 +08:00
@abersheeran pipenv?
aofall
2021-08-21 02:37:23 +08:00
对于现在啥都讲究“快”的时代来说确实稍微繁琐了一点,标准库中没有内置,然后也没 npm 、maven 类似的包管理,不能 import/install 无脑解决这个需求。

我相信这个需求对于有点英语水平+善用搜索引擎的人来说不难,可是现在国内的开发越来越偏向于怎么快速简单开发完成性能还算过得去的稳定的系统,因为随着硬件的发展软件性能也不再是瓶颈了,只要可以拿钱堆配置解决的事情就可以不那么注重性能优化,重点在于项目能不能上线赚钱,最优性能很少能给自己带来更大的利益。

这样子一来国内对于 cpp 开发的社区 /资料随着时间也就越来越少了。另外 CSDN 的权重也比较高,抄来抄去的垃圾内容很容易把真正有用的信息给覆盖了,无形之中也给学习带来了“门槛”。大家还是得心平气和的交流才能有新鲜血液的涌入,中文社区的氛围也才能变得更好一点呀。。。
pkookp8
2021-08-21 10:03:16 +08:00
@xy90321 只要有现成的库,头文件,我懂不懂 fft 也不影响呀,哪个语言不是给入参,拿出参。

就像我不懂平衡树,也不影响我用 std::map
我只要知道他效率高,能加能减就够了

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

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

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

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

© 2021 V2EX