cpp 有什么简洁的方案可以时间 http 请求吗?

2021-08-19 13:44:14 +08:00
 woshichuanqilz

网上找了不少例子在 VisualStudio2019 里面都不能用 系统是 windows

9227 次点击
所在节点    C++
115 条回复
janus77
2021-08-19 13:47:20 +08:00
curl 不行?
AoEiuV020
2021-08-19 14:29:08 +08:00
c++门槛还是这么高吗,一个 http 请求都很麻烦?
nannanziyu
2021-08-19 14:30:42 +08:00
https://github.com/yhirose/cpp-httplib
A C++11 single-file header-only cross platform HTTP/HTTPS library.
nannanziyu
2021-08-19 14:32:43 +08:00
@AoEiuV020
> c++门槛还是这么高吗,一个 http 请求都很麻烦?
请先确认前提,再引申结果,从错误前提引申的结果,只能证明自己无知
AoEiuV020
2021-08-19 14:40:04 +08:00
@nannanziyu 不至于,
要说有没有办法简单实现 http 请求我是一开始就相信有的,
但楼主的意思应该是已经在网上查找过,并且尝试过不少不可行的方案,

这就是前提了,
是说一个简单的 http 请求都能折腾到新手上来问,
而不是说 c++没有办法实现简单的 http 请求,
并没有什么错误,
nannanziyu
2021-08-19 14:47:08 +08:00
@AoEiuV020
1. 首先 google 关键词 "c++ http library" 第二条结果就是 cpp-httplib
2. 楼主解决问题以及寻找答案的能力差,自己找不到答案,所以来请教,这是没有问题,因为请教也是解决问题的一个方法,至少努力了
但是看到一个错误前提,不花时间思考,条件反射地得出结论,不是解决问题的方法
AoEiuV020
2021-08-19 15:02:47 +08:00
@nannanziyu 感觉你这是习惯性偷换概念了,
我都说了我前提是楼主已经出来问了,你依然觉得你有解决方案而楼主没有就能说明是楼主不行,不是 c++门槛高,
另外我花了几分钟下载试了一下你说的这个库,甚至没有想像中的方便,这东西还依赖 openssl,不开启 CPPHTTPLIB_OPENSSL_SUPPORT 就不支持 https,开启了没有 openssl 就报错,
像我这种能力差的依然不能简单利用起来实现 http 请求,说一句“c++门槛还是这么高” 没毛病吧,
shawnsh
2021-08-19 15:08:52 +08:00
确实没有 modern cpp 风格的好用的 http 库
ztcaoll222
2021-08-19 15:26:21 +08:00
用 qt
ipwx
2021-08-19 15:32:36 +08:00
@AoEiuV020 你说的很对,C++ 的库安装,在 VS 下就是忒麻烦。

所以我用 linux + cmake + conan.io 。这真的无痛,什么 openssl 、cpp-httplib 、libcurl 都是一键安装,直接运行
wutiantong
2021-08-19 15:45:02 +08:00
@ipwx vcpkg 不香吗?
jpacg
2021-08-19 15:46:07 +08:00
c/c++用别人的轮子都麻烦,特别是在 Windows 下。
Otho
2021-08-19 15:56:36 +08:00
vcpkg + cpprest Qt 的也不是很好用。
nannanziyu
2021-08-19 16:44:12 +08:00
@AoEiuV020
好,我来把解决“cpp 解决 http 请求”的整个流程列一下,你说说哪个步骤门槛高
1. 要做 http 请求,肯定找一下相关库,所以用 google 搜索 "c++ http library",第二条结果就是 cpp-httplib
2. 进入 cpp-httplib github 主页,花两分钟看下文档,ok,需要 “SSL support is available with CPPHTTPLIB_OPENSSL_SUPPORT. libssl and libcrypto should be linked.”
3. 尝试寻找 windows openssl library,使用 google 搜索 "windows openssl library download",同样第二条结果就是

4. 点击第二条进入 Openssl Binaries 下载主页
页面仔细看一下就知道下哪个。就算不知道在页面里搜索 library,一共三条结果,排除掉第二个 for ICS 的,一共就两个,下载下来

5. 把下载的 lib 和 headers 加入工程,实例代码拷贝一下,F5


你说说这里哪个门槛高?也只有第五步需要有一点点 L l IncludePath 的概念,但是连 IncludePath 也叫门槛吗?
araraloren
2021-08-19 16:47:10 +08:00
你说的网上是 CSDN 吗???????
nannanziyu
2021-08-19 16:49:48 +08:00
说实话,我之前都是用 cpprestsdk 和 QT 的,因为楼主要“简单方案”,所以今天是第一次接触 cpp-httplib
上面全部尝试过程都是"第一次接触",然后“尝试解决问题”的过程
程序员这个行业,搜索资料,尝试解决问题的能力是很重要的
如果觉得这个都有门槛,我真心觉得需要提升一下自己
bthulu
2021-08-19 16:59:29 +08:00
可以安装 nodejs, c++动态生成 http 的 js 代码, 调用 cmd 脚本执行, 再读取控制台返回数据流即可
AoEiuV020
2021-08-19 17:00:03 +08:00
@nannanziyu 一个简单的 http 请求,甚至不能复制粘贴运行直接搞定,还要谷歌搜索两次,还要看文档,还要下载合适的库,还要正确的引用库,这就是门槛,
AoEiuV020
2021-08-19 17:02:17 +08:00
@AoEiuV020 #18 这个流程已经可以用于“实现任何功能”了,然而仅仅是一个“简单的 http 请求”就需要这么麻烦的操作,你的门槛是被踩碎了吧,巨人,
nmap
2021-08-19 17:06:20 +08:00
这种问题自己 google 两分钟就搞定的事,还拿来问,还引来大佬们的骂架。。。

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

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

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

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

© 2021 V2EX