gpt4 book ai didi

c++ - Qt 无法使用 QNetworkAccessManager 下载文件

转载 作者:行者123 更新时间:2023-12-03 12:51:08 30 4
gpt4 key购买 nike

在我的项目中,我需要下载一个简单的.txt 文件。我创建了一个函数来根据 url 下载文件:

void MainWindow::downloadFile(const QString &url, const QString &aPathInClient)
{
QNetworkAccessManager* m_NetworkMngr = new QNetworkAccessManager(this);
QNetworkReply *reply = m_NetworkMngr->get(QNetworkRequest(QUrl(url)));
QEventLoop loop;
connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));
loop.exec();
QUrl aUrl(url);
QFileInfo fileInfo=aUrl.path();

QFile file(aPathInClient+"\\"+fileInfo.fileName());
file.open(QIODevice::WriteOnly);
file.write(reply->readAll());
delete reply;
}

当我的程序运行时,会使用正确的文件名创建文件,但该文件是空的。如果连接到网页,我的程序只能获取文件名。我忘记了什么?我在构建时没有遇到任何错误,并且已经包含了所有必要的库。

谢谢:)

编辑:

一切都很好,我的问题是我的链接使用了 https 而不是 http。

最佳答案

我从未使用过“write”函数来写入QFile。尝试以下方法:

QFile file(aPathInClient+"\\"+fileInfo.fileName());
file.open(QIODevice::WriteOnly);
QTextStream out(&file);
out << "This file is generated by Qt\n";

编辑:以上只是检查文件是否正确写入。现在已经验证完毕,您可以尝试:

out << reply->readAll();

关于c++ - Qt 无法使用 QNetworkAccessManager 下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19614932/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com