关于Qt使用QNetworkAccessManager下载文件(实现断点续传功能)

本文介绍了如何使用Qt的QNetworkAccessManager实现文件下载,并重点讨论了如何判断服务器是否支持断点续传以及如何实现断点续传功能。通过获取HTTP头部信息确定文件长度,然后利用多线程加速下载过程。

         最近在做一个关于下载文件的功能,其中需要支持断点续传功能,此前也接触过下载文件,这里使用Qt的QNetworkAccessManager来下载管理

但是其中考虑到一个问题,那就是需要判断该下载链接是否可以断点下载(即判断服务器是否支持断点续传功能),网上搜罗了一番,貌似好像找到了VC的断点续传的判断

但是其中是vc下的断点续传的判断,我在想Qt下面如果可以做到先判断是否支持断点呢,于是找到了一个方法专门获取http 头部信息的方法,具体见以下代码:

    QNetworkAccessManager manager;
    QEventLoop loop;
    QNetworkReply *reply = manager.head(QNetworkRequest(m_argLst.at(0)));
    QObject::connect(reply, SIGNAL(finished()), &loop, SLOT(quit()), Qt::DirectConnection);
    loop.exec();
    QVariant var = reply->header(QNetworkRequest::ContentLengthHeader);
    qint64 curFileSize = var.toLon
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值