我们想要实现支持https的请求,在一开始,不做任何操作下,是不支持https的请求的
什么是https:是由SSL + HTTP协议构成的超文本加密协议,比http协议更加的安全
QT += network
#include
#include
QNetworkAccessManager manager;
bool bSupp = QSslSocket::supportsSsl();
QString buildVersion = QSslSocket::sslLibraryBuildVersionString();
QString version = QSslSocket::sslLibraryVersionString();
qDebug() << bSupp << buildVersion << version << endl;
qDebug() << QStringLiteral("支持发送数据:") << manager.supportedSchemes();
一:首先,我们要获取对应的QT 版本 的OpenSSL
二:我们需要下载对应 版本 的OpenSSL
OpenSSL旧地址下载
三:下载配置编译环境及工具ActivePerl **
ActivePerl 官网
因为我在官方下载,没下载成功,就随便找了一个网址下载的,百度搜ActivePerl 5.28 安装**
不是官网链接,但是配置成功了,默认安装即可
四:检查我们下载的 ActivePerl
五:编译我们的OpenSSL库
我们需要打开我们的VS2019 命令行 开发者平台:
鼠标右键 :管理员身份运行 该命令行工具
进入我们的前面下载的openssl库, 配置要Perl编译的位数:
cd openssl库路径
perl Configure VC-WIN64A no-asm --perfix="D:\\thirdLibrary\\openssl-1.0.2p"
这里VC-WIN64A代表目标是64位库,VC-WIN32 代表是32位库,no-asm
编译过程中不使用汇编代码加快编译过程。
执行编译:
ms\do_win64a
nmake -f ms\ntdll.mak
执行完:
nmake -f ms\ntdll.mak install
测试:
cpp nmake -f ms\ntdll.mak test
六:将我们的QT的 两个库放入到 对应版本的bin中
将 D:\QT5.12wj\Tools\mingw730_64\opt\bin
中的libeay32.dll
和 ssleay32.dll
复制到
D:\QT5.12wj\5.12.2\msvc2017_64\bin
中
这是配置好后显示的 可支持发送数据:
7:测试我们的https
测试https网址
打印如下:
其中遇到过这样的问题:(一台电脑没有出现,另外一台电脑出现,上面同样的操作,不知道为什么会有,具体原因未知)
这个ICLS Client:百度查找 是设备驱动文件
解决方案:将libeay32.dll 放入到.exe文件中 发现解决问题了 ,可以不用加ssleay32.dll
然后就支持https了