什么时候QNetworkReply ::错误信号后跟一个finished()信号?

时间:2016-05-25 15:04:49

标签: c++ qt

对于信号:

QNetworkReply::error(QNetworkReply::NetworkError code)

Qt的文件说:

  

当回复检测到处理错误时,会发出此信号。   完成()信号可能会跟随,表明   连接结束了。

具体来说,什么时候发出完成的()信号?什么时候不发信号?

1 个答案:

答案 0 :(得分:3)

  

QNetworkReply ::错误信号何时接着是完成()信号?   具体来说,何时发出完成的()信号以及何时发出   不?

由于数据传输完成或传输过程中的错误,请求完成时会发出信号finished()。如果发生错误,信号error()正在finished()之前发生。在实践中,我们可以为“错误”和“传输成功”处理finished()

举例说明:

// connect 'finished' signal with consumer
connect(&s_networkAccessManager, SIGNAL(finished(QNetworkReply*)),
        this, SLOT(requestFinished(QNetworkReply*)));



void MyClass::requestFinished(QNetworkReply* pReply)
{
    if ( pReply )
    {
         if (pReply->error() == QNetworkReply::NoError)
             consumeData(pReply)
         else
             errorHandler(pReply->error(), pReply->errorString());
    }
}