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",然后在打开软件就不会有报错了