首页 > 其他分享 >Qt中使用QNetworkAccessManager类发送https请求时状态码返回0

Qt中使用QNetworkAccessManager类发送https请求时状态码返回0

时间:2023-11-19 21:03:02浏览次数:33  
标签:Qt reqDownloadPackage SSL https config QNetworkAccessManager

前言 在项目开发中,碰到一个问题,使用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);

1 2 3 4 5 6 7 8 9 10 11 12 13 14 原因二:QT版本太低,不支持高版本SSL/TLS协议 如果按照以上方法设置后,状态码还是0,那就是Qt版本太低了,不支持高版本的SSL/TLS协议,只能切换Qt版本。 建议使用Qt5.9以上的版本。 参考 Qt中https请求返回总是空值问题 Qt之SSL问题

标签:Qt,reqDownloadPackage,SSL,https,config,QNetworkAccessManager
From: https://blog.51cto.com/u_15319978/8475550

相关文章

  • nanomq 轻量快速的mqtt broker
    nanomq是emqx团队开源的iot边缘mqttbroker,有点是轻量,性能好,同时官方也提供了与Mosquitto对比的介绍nanomq很多功能上与emqx是类似的,包含了rule,自定义auth,gatway协议,基于关系型数据库的存储一张官方的集成玩法一些特点快速 相比mosquitto有10倍的提升轻量 比较小跨......
  • 物联网协议学习 - MQTT协议3.1.1
    MQTT是什么MQTT是一个客户端服务端架构的发布/订阅模式的消息传输协议。轻巧、开放、简单、规范,易于实现。MQTT是一种消息传递协议,即它是为传输消息而设计的,并使用发布和订阅模型。该模型使得向0个、1个或多个客户端发送消息成为可能。一个有用的类比是电视或广播。电视播音员使用......
  • Qt项目中CMakeLists.txt文件
    cmake_minimum_required(VERSION3.5)project(testNameLANGUAGESCXX)set(CMAKE_AUTOUICON)set(CMAKE_AUTOMOCON)set(CMAKE_AUTORCCON)set(CMAKE_CXX_STANDARD17)set(CMAKE_CXX_STANDARD_REQUIREDON)find_package(Qt5COMPONENTSREQUIREDWidgetsSqlCharts......
  • Qt 基本CMakeLists.txt 文件
    cmake_minimum_required(VERSION3.5)project(untitledVERSION0.1LANGUAGESCXX)set(CMAKE_AUTOUICON)set(CMAKE_AUTOMOCON)set(CMAKE_AUTORCCON)set(CMAKE_CXX_STANDARD17)set(CMAKE_CXX_STANDARD_REQUIREDON)find_package(QTNAMESQt6Qt5REQUIREDCOM......
  • paho-mqtt api
     ......
  • Qt打包成文件夹包含可执行文件.exe
    这里使用Qt自带命令打包1.以release方式编译源代码。 2.编译成功后项目文件夹下会有一个Release后缀的构建项目,进入该目录,将其中的.exe可执行文件复制到一个单独的文件夹下。 3.选择安装Qt时自带的终端,进入刚才复制的文件夹路径下,这里我使用命令cd/dD:/Qttest才能成......
  • 使用QT来写一个TCPsocket
    我们来了解一下什么是TCP的通讯小知识点,方便后续的理解1.TCP的简单了解由网上搜索的资料可知,tcp传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议。tcp通讯一定要经过三次握手才可以连接成功进行通讯;且,tcp通讯只能一对一进行连接;现在大多数通讯都是使用tcp......
  • Python 使用 MQTT
    官方参考文档:https://docs.emqx.com/zh/cloud/latest/connect_to_deployments/python_sdk.html参考文档:https://zhuanlan.zhihu.com/p/187481769发布消息首先定义一个while循环语句,在循环中我们将设置每秒调用MQTT客户端 publish 函数向 /python/mqtt 主题发送消息。......
  • IIS服务器多站点多域名同时部署多个不同SSL证书HTTPS实现方法 当一个https的请求到达I
    IIS服务器多站点多域名同时部署多个不同SSL证书HTTPS实现方法当一个https的请求到达IIS服务器时,https请求为加密状态,需要拿到相应的服务器证书解密请求。由于每个站点对应的证书不同,服务器需要通过请求中不同的主机头来判断需要用哪个证书解密,然而主机头作为请求的一部分也被加......
  • P4115 Qtree4 题解
    P4115看到单点修改,求全局白色的最远距离,可以使用点分树。考虑维护这棵点分树,想想树的直径的dp求法:\(f_u=\max\{f_v+w(u,v)\}\),答案为\(\max(f_v+f_{v'})(v,v'\in\{\text{son}_u\})\),\(\{\text{son}_i\}\)表示\(i\)的孩子集合。这时候维护就十分简单了,对于每个点都......