在QT中访问https协议时,将libcrypto-1_1.dll
和libssl-1_1.dll两个dll文件粘贴到qtcreator的bin目录下后
执行如下代码:
if(QSslSocket::supportsSsl())
{
qDebug()<<"支持ssl";
}
else{
qDebug()<<"不支持ssl";
}
在编译程序输出时如下图显示ssl不支持
openSLL版本兼容问题比较严重,可以输入了以下这行代码检查openSSL版本。
qDebug() << QSslSocket::sslLibraryBuildVersionString();
我安装的qt是5.12.9版本的,跟openSSL1.1.1d版本是兼容的。
若检查后发现不兼容可以点击下面的链接下载跟自己qt版本兼容的openSSL版本。
https://slproweb.com/products/Win32OpenSSL.html
经过上述检查还是显示了ssl不支持,最后我发现最开始将libcrypto-1_1.dll
和libssl-1_1.dll两个dll文件粘贴到了qtcreator的bin目录下,会不会是这个bin路径不在电脑的系统变量里。检查了系统环境变量发现最开始下载QT的时候只按照教程把下面这两个bin目录加到系统环境变量里面了。
找到QT的安装目录把QTCreator的bin目录加入到系统环境变量中就好了。
最后,重启QT运行程序就显示支持ssl了。