Qt之HTTP下载(同步与异步、多线程与断点续传、超时与重定向)

本文介绍了在Qt中处理HTTP下载时遇到的问题,包括Qt对HTTPS的支持,异步与同步下载的区别,如何实现多线程与断点续传,超时处理的策略,以及重定向和获取文件大小、文件名的方法。通过示例代码展示了如何在Qt中优雅地处理这些问题。
摘要由CSDN通过智能技术生成

 一.HTTP与HTTPS

今天使用Qt的QNetwork模块下载https开头的链接时报错:qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed,但是下载http开头的资源却没问题
原因:因为HTTP是超文本传输协议,信息是明文传输,存在安全风险的问题。HTTPS则解决HTTP不安全的缺陷,在TCP和HTTP网络层之间加入了 SSL/TLS 安全协议,使得报文能够加密传输。那么这个报错,就是缺少加密的手段,也就是没有提供对HTTP加密的工具,从而无法进行HTTPS通信。
解决方法:Qt本身是支持ssl的,但是并未自带对应的dll库,首先我们看看当前Qt支持的ssl版本

qDebug()<<QSslSocket::supportsSsl()
        <<QSslSocket::sslLibraryBuildVersionString()
        <<QSslSocket::sslLibraryVersionString();

supportsSsl():是否支持ssl
sslLibraryBuildVersionString():构建Qt源码时使用的ssl版本
sslLibraryVersionString():当前使用的ssl版本
刚开始我的输出如下
false "OpenSSL 1.1.1m  14 Dec 2021" ""
接下来

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

草上爬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值