Qt NetworkAccessManager如何通过HTTP下载文件[重复]
Posted
技术标签:
【中文标题】Qt NetworkAccessManager如何通过HTTP下载文件[重复]【英文标题】:Qt NetworkAccessManager how to download file via HTTP [duplicate] 【发布时间】:2013-09-08 22:08:48 【问题描述】:今天我开始了一个使用 Qt 的项目,但我在使用 NetworkAccessManager 下载文件时遇到了一点问题。我对 Qt 很陌生,还不太了解它的结构,所以请对你的建议友好的初学者=)
如果可能的话,你能发布一些代码来帮助我吗?提前致谢!
【问题讨论】:
【参考方案1】:这是一个极其简化的代码。各种检查被删除。它并不意味着被复制/粘贴到生产系统中。没有登录。没有ssl。
QNetworkAccessManager *manager = new QNetworkAccessManager(this);
connect(manager, SIGNAL(finished(QNetworkReply*)),
this, SLOT(replyFinished(QNetworkReply*)));
QNetworkRequest request;
request.setUrl(QUrl(source)); // source = url to the file you want to download.
manager->get(request);
replyFinished 槽:
replyFinished(QNetworkReply *reply)
reply->deleteLater();
QByteArray yourFile = reply->readAll();
再次:查看文档以获取详细信息,例如错误处理。为简化起见,我假设在调用 replyFinished 时文件的全部内容已经可用。
【讨论】:
以上是关于Qt NetworkAccessManager如何通过HTTP下载文件[重复]的主要内容,如果未能解决你的问题,请参考以下文章
从 NetworkAccessManager->get() 回调访问 QList<QLlnkedList<QUrl>* > 时 Qt 应用程序冻结