Windows上让Qt支持https请求

一.前言

Qt默认其实支持https的,但需要openssl的支持。所以有时候你代码中写了支持https的请求连接,发现程序可以运行,但到了https请求时会报错,如下:

这就是没有openssl的支持,导致QSslSocket无法进行https请求。若需要支持https,则需要openssl的支撑,并且要注意,Qt不同版本会指定对应的openssl版本库,比方我用的Qt5.15.10他要求用的openssl版本是1.1.1,你就不能用其他版本,不然基本就是失败报错。

如何查看Qt对应openssl的版本呢?

在程序可以执行的任何地方加上这两句

cpp 复制代码
include <QSslSocket>
//查看需要的openssl版本
QString strVersion = "QSslSocket="<<QSslSocket::sslLibraryBuildVersionString();
 //查看是否支持
bool bExist = (QSslSocket::supportsSsl() == true ? "true" : "false");

二.windows环境

1.在windows环境中需要安装openssl,并将openssl释放的"libcrypto"和"libssl"的库打包进你的程序依赖目录中,比如我用的openssl1.1.1g版本,那就将该版本openssl安装后,取出其安装目录下的"libcrypto-1_1.dll"和"libssl-1_1.dll"放置在我们自己的程序依赖目录下即可。
openssl1.1.1g版本的windows安装包

如果需要源码包,准备使用Cmake自行编译,点击此处下载openssl的源码包

将上图中安装目录下的这两个库取出来放在你的程序目录

相关推荐
TlSfoward1 小时前
TLSFOWARD抓包工具 TLS指纹
网络协议·http·百度·https
西西学代码1 小时前
Flutter---StreamBuilder案例
javascript·windows·flutter
jiang_changsheng2 小时前
Conda 的默认环境创建优先级。
linux·windows·python
黄一一9112433 小时前
硬盘健康监测软件!绿色便携版!电脑硬盘还能用几年?CrystalDiskInfo工具帮你提前避开数据丢失
windows·电脑·硬件工程·开源软件
奇牙coding4 小时前
gpt-5.6-luna 调用报 400 bad_request 怎么办?同样的 messages 在 gpt-5.5 没问题——两处校验差异和修复写法
java·windows·gpt·ai
十五年专注C++开发4 小时前
qobject_cast转换失败原因分析
c++·qt·dynamic_cast·qobject_cast
sycmancia4 小时前
Qt——线程的生命期问题
开发语言·qt
樂禮5 小时前
Windows-Arch Linux 键鼠共享 & 剪贴板同步配置
linux·运维·windows
未来可期丶5 小时前
【开发环境】Windows+Docker Desktop+WSL2最佳实践
windows·docker·docker desktop·wsl2
2501_9419820513 小时前
企业微信二次开发:私域数据基石——三大核心基础能力接口实战
windows·架构·bootstrap·企业微信