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

Qt开源网络库[9]-下载文件

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

有用户反馈说下载文件操作太麻烦了,想了想把这个功能加上吧。只需要简单地调用download()即可轻松下载文件。

接口:

  • 设置下载操作。
代码语言:javascript
复制
/* 保存为默认的文件名,会从请求头去拿文件名字,如果请求头没有则为链接最后的文本内容。*/
HttpRequest &download();

/* 指定保存的文件名字,可包含路径。*/
HttpRequest &download(const QString &file);
  • 响应回调/信号槽。
代码语言:javascript
复制
HttpRequest &onDownloadSuccess(const QObject *receiver, const char *method);
HttpRequest &onDownloadSuccess(std::function<void ()> lambda);
HttpRequest &onDownloadSuccess(std::function<void (QString)> lambda);

HttpRequest &onDownloadFailed(const QObject *receiver, const char *method);
HttpRequest &onDownloadFailed(std::function<void ()> lambda);
HttpRequest &onDownloadFailed(std::function<void (QString)> lambda);

例子:

  下载本项目的最新源码。

代码语言:javascript
复制
HttpClient client;
client.get("https://github.com/aeagean/QtNetworkService/archive/refs/heads/master.zip")
      .download() // 启用默认文件名字下载
      .onDownloadProgress([](qint64 bytesReceived, qint64 bytesTotal) {
          // 下载进度
          qDebug() << "bytes received: " << bytesReceived
                   << "bytes total: " << bytesTotal;
       })
      .onDownloadSuccess([](QString fileName) { qDebug()<<"download success: "<<fileName; })
      .onDownloadFailed([](QString error) { qDebug()<<"download failed: "<<error; })
      .exec();
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-05-19,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 接口:
  • 例子:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档