2010-04-19 78 views
11

目前,我正在从远程服务器发送和接收文件的应用程序。要执行网络操作,我正在使用QNetworkAccessManager。QNetworkAccessManager超时

要上传文件我正在使用QNetworkAccessManager :: put()并下载我正在使用QNetworkAccessManager :: get()函数。

上传文件时,我会用15秒的时间初始化一个计时器。如果我上传一个小文件,它会在超时期限内完成。但是如果我尝试上传一个非常大的文件会超时。那么如何决定上传大文件的时间。

与下载大文件时相同。我在readyread()信号中通过块获取文件。在这里,如果我下载一个大文件,我会超时。那么如何决定上传大文件的时间。

回答

17

使用QNetworkReply::uploadProgress()(或downloadProgress)信号提醒您操作正在进行。然后,在最后一个uploadProgress/downloadProgress通知(在下载/上载开始时启动计时器)后设置一个计时器15秒。如果下载停止,您可以在最后一次更新后15秒取消操作。

+0

如何取消下载操作并使QNetworkReply发出httpFinished()? – Temak 2015-03-19 16:00:35

+1

@Temak使用'reply-> abort()'和'emit reply-> finished()' – vladon 2015-04-27 11:51:07

+1

这应该由框架IMO ... – Kolyunya 2015-10-21 17:44:23

相关问题