Qt HTTP下载数据

添加头文件:

cpp 复制代码
#include    <QNetworkAccessManager>
#include    <QNetworkReply>
#include    <QUrl>
#include    <QDesktopServices>

创建对象:

cpp 复制代码
QNetworkAccessManager networkManager;//网络管理
    QNetworkReply *reply;   //网络响应
    QFile *downloadedFile;//下载保存的临时文件

输入url地址:

cpp 复制代码
QUrl newUrl = QUrl::fromUserInput(urlSpec);//URL地址
复制代码
创建临时文件:
cpp 复制代码
downloadedFile =new QFile(fullFileName);
if (!downloadedFile->open(QIODevice::WriteOnly))
    {
        QMessageBox::information(this, tr("错误"),"临时文件打开错误");
复制代码
发送请求,创建网络响应:
cpp 复制代码
reply = networkManager.get(QNetworkRequest(newUrl));

连接信号与槽:

cpp 复制代码
connect(reply, SIGNAL(finished()), this, SLOT(on_finished()));
    connect(reply, SIGNAL(readyRead()), this, SLOT(on_readyRead()));
    connect(reply, SIGNAL(downloadProgress(qint64,qint64)),
            this, SLOT(on_downloadProgress(qint64,qint64)));


void MainWindow::on_finished()
{//网络响应结束
    QFileInfo fileInfo;
    fileInfo.setFile(downloadedFile->fileName());

    downloadedFile->close();
    delete downloadedFile;
    downloadedFile = Q_NULLPTR;

    reply->deleteLater(); //
    reply = Q_NULLPTR;

    if (ui->checkOpen->isChecked())//打开下载的文件
        QDesktopServices::openUrl(QUrl::fromLocalFile(fileInfo.absoluteFilePath()));

    ui->btnDownload->setEnabled(true);
}

void MainWindow::on_readyRead()
{//读取下载的数据
    downloadedFile->write(reply->readAll());
}

void MainWindow::on_downloadProgress(qint64 bytesRead, qint64 totalBytes)
{//下载进程
    ui->progressBar->setMaximum(totalBytes);
    ui->progressBar->setValue(bytesRead);
}
相关推荐
t***5445 小时前
如何配置Orwell Dev-C++使用Clang
开发语言·c++
CoderCodingNo5 小时前
【信奥业余科普】C++ 的奇妙之旅 | 13:为什么 0.1+0.2≠0.3?——解密“爆int”溢出与浮点数精度的底层原理
开发语言·c++
IT摆渡者6 小时前
MySQL性能巡检脚本分析报告
数据库·mysql
Lyyaoo.7 小时前
Redis基础
数据库·redis·缓存
kongba0077 小时前
项目打包 Python Flask 项目发布与打包专家 提示词V1.0
开发语言·python·flask
froginwe117 小时前
C 语言测验
开发语言
杨云龙UP7 小时前
ODA登录ODA Web管理界面时提示Password Expired的处理方法_20260423
linux·运维·服务器·数据库·oracle
解救女汉子7 小时前
SQL触发器如何获取触发源应用名_利用APP_NAME函数追踪
jvm·数据库·python
今夕资源网7 小时前
powershell工具包 安装升级脚本并设置UTF-8 环境快捷方式创建 将powershell的编码默认改为UTF-8
开发语言·utf-8·powershell·utf-8编码·powershell7·powershell5·设置utf-8编码
机器视觉知识推荐、就业指导8 小时前
Qt:真正的门槛不是入门,而是维护
开发语言·qt