【问题标题】:QNetworkAccessManager timeoutQNetworkAccessManager 超时
【发布时间】:2010-04-19 15:09:34
【问题描述】:

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

要上传文件,我使用 QNetworkAccessManager::put() 和下载文件,我使用 QNetworkAccessManager::get() 函数。

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

在下载大文件的情况下也是如此。我在 readyread() 信号中逐块获取文件。在这里,如果我下载一个大文件,我也会超时。那么如何决定上传大文件的超时时间。

【问题讨论】:

    标签: qt networking


    【解决方案1】:

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

    【讨论】:

    • 如何取消下载操作并让QNetworkReply发出httpFinished()?
    • @Temak 使用 reply->abort()emit reply->finished()
    • @Kolyunya qt bug tracker 上有一个功能请求,它已经存在了大约 5 年或类似的时间。随意点赞。
    • (请注意:)上述功能请求是here
    猜你喜欢
    • 2012-10-23
    • 1970-01-01
    • 1970-01-01
    • 2021-09-13
    • 2014-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多