Bootstrap

qt配置https请求

qt应用版本 windows 32位

先说下心理路程,你能遇到的我都遇到了,你能想到的我都想到了,怎么解决看这一篇就够了,从上午12点到晚上12点几乎没离开电脑(除了吃饭),对于openssl这种用的时候无感,自己配置的时候无从下手的知识点,真的恨不得把屏幕砸了,先是百度,百度完了google,google完了chatgpt,甚至我能知道的所有搜索引擎都搜了个遍,好搜,搜狗,一个简单有效的答案都没搜到,看清楚我说的是简单有效,稍微深入一点的都知道直接编译Qt要求的openssl版本当然没问题,可那几乎要找一台干净的电脑,至少不能是你当前开发的机器,因为环境变量配置的混乱可能回导致openssl配好了,qt却跑不起来了,再说仅仅是MinGW和Msys的安装几乎都要让你脱一层皮,还要配置perl,perl还必须是大于某个版本的,配置完成还有一堆的环境变量设置,想到这些,再想到项目交期,顿时就头皮发麻了,就在我快崩溃的时候在茫茫大海中捞到这个好大哥,终于终于搞定了,其实你看到这里已经能解决你的问题了,但是我还是会讲完后面的废话的,先贴上好大哥的帖子,再次谢过好大哥,把我从熬通宵的深渊中拉了回了,写完这个帖子最多两点种,也算能睡个好觉

https://blog.csdn.net/suporesky/article/details/103970751

关于好大哥的事就到这里,如果你只是想解决问题点开上面这个帖子就已经解决了

接着说网上能搜到的最常见的解决方案 ①

这个写法没错,但是没有前因后果,如果不做下一步的工作,这些代码写了没有任何用

 // 可选:如果你需要自定义 SSL 配置
   QSslConfiguration sslConfig = request.sslConfiguration();
   sslConfig.setPeerVerifyMode(QSslSocket::VerifyNone);
   sslConfig.setProtocol(QSsl::AnyProtocol);
   request.setSslConfiguration(sslConfig);
   qDebug()<<"进入了openssl设置的代码块";

常见解决方案②

将这两文件分别复制到qt的调试目录和生成exe的目录,复制到到调试目录,也就是Qt Creator点击三角后运行的那个目录,复制到这里的目的是在点击三角运行时就能找到这两个文件,复制到exe的目的是把项目打包发给用户的时候,用户项目里也能找到这两个文件。但是这是否是qt需要的版本,是无法分辨的,我通过看这么多帖子总结出这应该也是openssl的动态库,并且是能用的,但只能在低于某个版本的qt中使用,这是mingw提供的它和qt要使用的openssl并无版本关联,这个是最有迷惑性的,你觉得你行了,但是依然没有任何用,我就在这个地方原地转圈了一个小时。
在这里插入图片描述

常见解决方案③

打印qt当前版本支持的openssl版本,然后自己下载openssl去编译,这个讲的完全正确,没有任何问题,可是奈何openssl官网已经不提供低版本的openssl 二进制文件了,只有源码,我文初吐槽的也就是自己去编译这种方法,太复杂了,如果项目不赶工,坐那里慢慢熬也搞的出来。
在这里插入图片描述

OK的答案

其实这个包已经在你的电脑上了,如果你安装了Qt Creator,他就在你的这个目录下(见下图), 我猜测这就是你当前安装的qt版本,匹配的openssl 包,然后将其复制到上文说的那两个位置,OK一切搞定,就算你现在复制当前帖子地址,请求都能返回

在这里插入图片描述

;