珠海工商年检到哪个网站做,电商平台设计电商网站建设,海外营销推广方式,百度快照推广是什么意思前言
在项目开发中#xff0c;碰到一个问题#xff0c;使用QNetworkAccessManager类对象发送https请求时#xff0c;状态码一直返回0#xff0c;抓包分析看请求响应也是正常的。费了好大劲终于搞定了#xff0c;主要是两个原因导致的。
原因一#xff1a;未设置支持SSL…前言
在项目开发中碰到一个问题使用QNetworkAccessManager类对象发送https请求时状态码一直返回0抓包分析看请求响应也是正常的。费了好大劲终于搞定了主要是两个原因导致的。
原因一未设置支持SSL/TLS协议
默认是不支持https协议的需要在代码中手动设置下 QNetworkRequest reqDownloadPackage;reqDownloadPackage.setUrl(QUrl(https://www.baidu.com));// 设置支持Https请求QSslConfiguration config QSslConfiguration::defaultConfiguration();// 设置tls协议自动协商config.setProtocol(QSsl::AnyProtocol);// 设置不校验对端证书config.setPeerVerifyMode(QSslSocket::VerifyNone);reqDownloadPackage.setSslConfiguration(config);// 发送get请求QNetworkAccessManager *managerDownloadPackage new QNetworkAccessManager(this);;managerDownloadPackage-get(reqDownloadPackage);原因二QT版本太低不支持高版本SSL/TLS协议
如果按照以上方法设置后状态码还是0那就是Qt版本太低了不支持高版本的SSL/TLS协议只能切换Qt版本。建议使用Qt5.9以上的版本。
参考
Qt中https请求返回总是空值问题Qt之SSL问题