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的源码包

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

相关推荐
程序猿_极客18 小时前
【2025 年最新版】Java JDK 安装与环境配置教程(附图文超详细,Windows+macOS 通用)
java·开发语言·windows·macos·jdk
C++ 老炮儿的技术栈1 天前
在C++ 程序中调用被 C编译器编译后的函数,为什么要加 extern “C”声明?
c语言·c++·windows·git·vscode·visual studio
Anthony_2311 天前
一、网络通信的本质与OSI模型
网络·网络协议·tcp/ip·http·https·udp·ssl
pVPkTAeVGPdZ1 天前
码垛机器人分析与仿真:基于Matlab Simulink Simscape的探索
windows
一点事1 天前
windows:安装rabbitMQ
windows·rabbitmq·ruby
SunkingYang1 天前
Windows系统怎么修改系统文件如user32.dll的控制权限(无法保存对xxx权限所做的更改,拒绝访问,怎么处理)
windows·系统文件·控制权限修改·无法保存·拒绝访问
yaoxin5211231 天前
296. Java Stream API - 二元操作符与“单位元“
java·服务器·windows
用什么都重名1 天前
Conda 虚拟环境安装配置路径详解
windows·python·conda
归去来?1 天前
记录一次从https接口提取25G大文件csv并落表的经历
大数据·数据仓库·hive·python·网络协议·5g·https
万行1 天前
企业级前后端认证方式
前端·windows