前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Qt开源网络库[13]-断点续传下载

Qt开源网络库[13]-断点续传下载

作者头像
Qt君
发布2023-03-17 15:17:09
3910
发布2023-03-17 15:17:09
举报
文章被收录于专栏:跟Qt君学编程跟Qt君学编程

主要更新内容:添加了断点续传下载功能。

  程序异常退出或网络中断,不再需要重新下载文件了,在断点处重新下载即可。

1. 断点续传下载

  默认开启断点续传下载功能,即当程序异常退出时,再次运行会接着从已下载的位置下载。   需要注意的是:如果服务器不支持断点续传功能,则每次下载都是从头开始下载。

参数

解释

enabled

开启/关闭断点续传下载

代码语言:javascript
复制
HttpRequest &enabledBreakpointDownload(bool enabled = true);

  文件下载进度的响应回调/信号槽,回调传递的参数分别是已保存的文件字节数和文件总字节大小。

代码语言:javascript
复制
HttpRequest &onFileDownloadProgress(const QObject *receiver, const char *method);
HttpRequest &onFileDownloadProgress(std::function<void (qint64, qint64)> lambda);

2. 例子

代码语言:javascript
复制
client.get("http://mirrors.tuna.tsinghua.edu.cn/qt/archive/qt/6.0/6.0.3/single/qt-everywhere-src-6.0.3.tar.xz")
      .download() // 启用自动设置文件名字 => qt-everywhere-src-6.0.3.tar.xz
      .enabledBreakpointDownload() // 启用断点续传下载
      .onFileDownloadProgress([](qint64 recv, qint64 total) {
            // 获取文件下载进度
            qDebug().nospace() << (100 * qreal(recv)/total) << "%";
       })
      .onDownloadSuccess([](QString fileName) {
            // 下载成功
            qDebug() << "Download completed: " << fileName;
       })
      .onDownloadFailed([](QString error) {
            // 下载失败
            qDebug() << "Download failed: " << error;
       })
      .exec();

3. 代码地址

https://github.com/aeagean/QtNetworkService

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-09-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Qt君 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 断点续传下载
  • 2. 例子
  • 3. 代码地址
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档