Qt之OpenSSL

        SSL(Secure Socket Layer)安全套接层是广泛使用的网络安全协议。它是在传输通信协议(TCP/IP)上实现的一种安全协议,采用公开密钥技术。SSL广泛支持各种类型的网络,同时提供三种基本的安全服务,它们都使用公开密钥技术。

        当QT使用get/post发送请求时,如果使用了https开头的网页,就需要用到SSL。如果缺少SSL库,则会导致请求发送中断,并提示以下错误:

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

这是由于QT只提供了SSL的静态链接库,而没有提供SSL的动态链接库,解决这个问题首先要知道当前QT支持的SSL库,然后添加相应的SSL库即可。   

查看下是否支持SSL:

qDebug() << "OpenSSL支持情况:" << QSslSocket::supportsSsl();    

     返回的是false,表示当前没有安装ssl库。

解决办法如下:

        首先查看当前QT支持的SSL版本及:

qDebug()<<"QSslSocket支持的版本="<

 点击下面的链接,并下载相应的版本(一般下载Win32 OpenSSL v1.1.1):

 Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions (slproweb.com)

 如果发布程序,需要将相应的ssl库添加到发布程序中。

你可能感兴趣的:(QT,网络)