Qt 网络请求各种错误解决大全

前言

最近自己写了一个后台的https的请求服务,用qt客户端测试各种报错,服务是在postman和其他在线url测试网站成功通过,下面记录一下其中的各种错误解决方案:


正文

  1. qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed
    如图所示:
    在这里插入图片描述
    解决方案:
    1.首先确定你选择打开工程的编译器是64位还是32位,确定方法如下:Qt 网络请求各种错误解决大全_第1张图片
    我的是64位
    2.去QtCreator的安装目录,搜索ssleay32.dll和libeay32.dll
    Qt 网络请求各种错误解决大全_第2张图片
    这就是为什么一开始要确定编译器是64位还是32位,由于我一开始随便复制,采用的是QtCreator/bin中的,所以导致加入了这两个库,依然报错,所以必须要对应自己的编译器版本,这样放入exe所在的目录就成功编译过去了。

  2. Network Requst Error = QNetworkReply::SslHandshakeFailedError
    如下图:
    在这里插入图片描述
    这个错误是接着我上面解决了出现的
    解决方案:
    经过一番搜索和尝试,发现将QSslConfiguration中的peerverify mode设置为QSslSocket::VerfifyNone后问题解决。缺省mode为AutoVerifyPeer。Qt文档上面的描述如下:
    Qt 网络请求各种错误解决大全_第3张图片
    解决代码如下:

      QSslConfiguration config;
      QSslConfiguration conf = request.sslConfiguration();
      conf.setPeerVerifyMode(QSslSocket::VerifyNone);
      conf.setProtocol(QSsl::TlsV1SslV3);
      req.setSslConfiguration(conf);
    

    将上面的代码放入QNetworkRequest请求之前即可,req这是QNetworkRequest实例化后的变量。


后面还有其他问题,则继续更新记录!!!

有兴趣搭建,关于python服务器搭建https服务的教程的,可以参考我另外一篇文章!!!

你可能感兴趣的:(QT)