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 应用程序冻结

Qt 多部分帖子问题

单例 QNetworkAccessManager 没有将响应定向到所需的形式

如何在 PyQt 中屏蔽广告

QNetworkAccessManager 不起作用

Pyside qwebview 自定义协议