QT在请求https的时候报错: qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed

/ 0评 / 0

Qt软件中,需要使用Post来发送并请求数据,但是报错:

qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed

原因是Qt中缺少https的加密模块,需要到OpenSSL官网上下载编译动态库并放到相应的目录中去。

先打印当前Qt环境支持的SSL版本:

#include <QSslSocket>
#include #include <QDebug>
qDebug()<< QSslSocket::sslLibraryBuildVersionString();

> 输出结果为:
"OpenSSL 1.1.1g 21 Apr 2020"

然后去官网下载对应的版本 : https://www.openssl.org/source , 然后编译安装,或者更简单的额方法,从其他网站上面下载已经编译好的动态库文件,拷过来用就可以了

https://indy.fulgan.com/SSL
https://slproweb.com/products/Win32OpenSSL.html
https://kb.firedaemon.com/support/solutions/articles/4000121705

如果是在MacOS或者Linux系统上面,就在Terminal中使用包管理器安装即可,将安装后的根目录下的动态库文件拷贝到Qt相应目录中即可使用了

- libcrypto-1_1.dll
- libssl-1_1.dll

拷贝到Qt的安装目录,如 "C:/Qt/5.15.2/mingw81_32/bin",然后在打开软件就不会有报错了

名言语句:

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注