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++
7386 次点击
所在节点    C++
92 条回复
zakokun
2021-08-20 12:24:09 +08:00
我全程看完,只是觉得承认 CPP 门槛相对更高又不是什么丢人的事情,你这么纠结干啥?那帖子都是默认楼主零基础吧。我假设自己是新人,从你发的这些来看,vs 这东西好几 G,安装要激活码的,我从哪里弄?我是 MacOS 系统 vs for Mac 和你发的界面不一样的,相对于脚本语言就是有门槛啊。 顺便说,看到 web::http::client::http_client clien 这么长一串我就笑出来了
Jwyt
2021-08-20 12:28:34 +08:00
@zakokun 我记得 vs 社区版的已经免费很久了吧。。
nannanziyu
2021-08-20 12:30:57 +08:00
@zakokun
我尽量心平气和哈
1. vs 这东西好几 G,安装要激活码的,我从哪里弄
VS 社区版 14 年就免费了,距今已经 7 年
2. 看到 web::http::client::http_client clien 这么长一串我就笑出来了
namespace 的概念,我都不知道怎么跟你解释
没有域隔离,就会变得像 Objc 一样,类名变得冗长无比
最后,要争执,去隔壁贴争执吧,这贴我只是备份方便后人搜索的
然后多少有点基础知识再争执吧,我真的不知道怎么跟你说
xarthur
2021-08-20 12:37:39 +08:00
从原帖看到这个帖子,觉得是楼主着急了……
johnkiller
2021-08-20 13:03:05 +08:00
。。。
nannanziyu
2021-08-20 13:03:54 +08:00
@xarthur
剧场版《打滚》
A:C++ 发送 http 请求太麻烦了
B:不麻烦啊,简单搜索几分钟就有答案了,如图如图
A:要搜索还不麻烦,靠搜索什么需求都完成了。只有直接复制粘贴的答案才是不麻烦
B:好吧,再给你一个直接复制粘贴的答案,一分钟就能完成,如图如图如视频
A:擦,B,你急了
B:……
singerll
2021-08-20 13:34:51 +08:00
非程序员,会写几行 python 和 shell 。我看了只能说,确实比 python 和 shell 门槛高。隔壁销售不懂啥是内存,啥是接口,也会写两行 python,但我觉得写不了 cpp
litmxs
2021-08-20 13:46:12 +08:00
上个帖子别人说了句 C++门槛高,就被楼主喷无知
我看楼主只是想通过贬低别人找点儿优越感罢了
darknoll
2021-08-20 13:50:08 +08:00
楼主应该是个老 windows 程序员吧,咋说呢,c++这玩意确实跟不上时代了,唯一的优势是运行效率高,但是现在都是 web 了,速度瓶颈在于带宽。可能很多老 c++开发人员确实都比较自负,认为自己能力远超常人,但是我反而觉得我司 c++大佬很多新技术都不懂,眼界太窄了。还是得紧跟时代啊。
erlangshanxia
2021-08-20 13:52:07 +08:00
我觉着 c++最麻烦的是字符串处理。
nannanziyu
2021-08-20 13:55:12 +08:00
@darknoll
你其实看看我以前的贴子
我主语言是 java
我主赚钱语言是 c#,之前做 UWP 年入差不多两百,当时安利大家做 UWP 的帖子在这里 https://v2ex.com/t/317307?p=1,里面收入 dashboard 都有,当时是真心安利,应该受益的人也不少;至少我同事里面跟我有好多人赚到了钱
关于语言:
我前后端很多语言都熟悉,毕竟做的年份多,加上爱好

语言是工具,每种工具都有适合自己的地方
Rust 也没有原生 http 库,C 也没有
语言各有优略,你说的这几门语言除了 golang,我都写过十几年,java 还是我的主吃饭语言
java 裹脚布
python 纸质书翻页需要游标卡尺
go 泛型都没有,1M 的源代码有 500k 的 if err != nil
javascript 弱类型大型项目管理困难,ts 救了无数人的命
如果只说语言优劣,那除了 ts 和 c# 别的都没有意义了?
还是那句话,语言是工具,每种工具都有适合自己的地方
wangchengwu
2021-08-20 13:55:35 +08:00
cpprestsdk 这东西是微软弄得,嵌入式移植不动。
nannanziyu
2021-08-20 14:04:10 +08:00
@darknoll
https://v2ex.com/t/761625#reply42
这个帖子里 42 楼是我用前端 typescript 做的播放器
https://v2ex.com/t/411218#reply222
这个帖子是 Swift 写的工具
至于主语言 Java,我写了快 20 年了
go/ python/ c#/rust,我都比这个站大部分人用的熟
你做多了就知道,语言真的只是个工具,看看文档就能干活了
darknoll
2021-08-20 14:05:36 +08:00
@nannanziyu 得,我就不该回这帖,反而让楼主大秀了一波。
nannanziyu
2021-08-20 14:06:16 +08:00
@darknoll
不是我帮 c++说句话,我就是喜欢 c++,连党卫军都来了
我只是说现在 2021 年了,用 c++发个 http 请求并不麻烦,我也给出证据了
我根本不喜欢 c++,我自己喜欢的是 ts 和 c#
nannanziyu
2021-08-20 14:09:16 +08:00
@darknoll
在一个谁都不认识谁的论坛有什么好秀的
当年安利 UWP,也是好多人说我秀,“年入两百万了不起啊”
我当时只是希望更多人做,把市场做大,自己收入更多一些而已
我要秀,我去找个妹子秀不好嘛……
这次更是,用 c++发个 http'请求有什么好秀的啊
我只是想说“用 c++发个 http 请求并不麻烦”啊
xylxAdai
2021-08-20 14:15:11 +08:00
怎么说呢,对一个新手来说,确实难,我用 c++四五年了,但是还是觉得相比于其他语言来说,就算拿不算简单的 java 来说,c++的包引入都复杂了一个级别。
你能找到这个,是因为你和我一样对 c++太熟悉了,对一个 c++新手来说,这些过程是很难找到或者实践的。
abersheeran
2021-08-20 14:29:14 +08:00
作为一个只在学校里写过 C++ 的人来说句我的感受,C++对于我来说最大的困难是没有一个好用的包管理器以及简单易用的编译工具。所以我在入门阶段就直接放弃了,现在大抵是只能在 VS 、DevC 里写点代码来解决 leetcode 上的题目这个水平。

我说一下我觉得好用的包管理器,比如 npm 、cargo 这种。简单易用的编译工具,go build 、cargo build 。

包管理器不是有就行的,比如 Python 那个 pip 我就觉得相当一般,最近他们整了个新活,无限尝试下载 package 搞得我 CD 都废了。编译工具也不是能用就行的,cargo 和 make 一比就知道谁优谁劣了。
ZField
2021-08-20 14:30:50 +08:00
为啥不直接用 curl 发送请求?
ZField
2021-08-20 14:31:12 +08:00
@ZField #19 没读题 抱歉= =

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

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

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

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

© 2021 V2EX