主要更新内容:添加了断点续传下载功能。
程序异常退出或网络中断,不再需要重新下载文件了,在断点处重新下载即可。
1. 断点续传下载
默认开启断点续传下载功能,即当程序异常退出时,再次运行会接着从已下载的位置下载。 需要注意的是:如果服务器不支持断点续传功能,则每次下载都是从头开始下载。
参数 | 解释 |
---|---|
enabled | 开启/关闭断点续传下载 |
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