Qt 文档指出:
void QNetworkReply::error(QNetworkReply::NetworkError 代码) [信号]
当回复检测到处理中的错误时,会发出此信号。可能会出现finished() 信号,表明连接已经结束。
从我在 Qt 源代码中看到的内容(最近检查了完全相同的问题),在 error() 之后的任何地方,之后都有一个 finished() 调用。在 5.1.0 中,我还没有找到一个地方,错误后面没有finished()
例如
void QNetworkReplyImpl::close()
{
Q_D(QNetworkReplyImpl);
if (d->state == QNetworkReplyImplPrivate::Aborted ||
d->state == QNetworkReplyImplPrivate::Finished)
return;
// stop the download
if (d->backend)
d->backend->closeDownstreamChannel();
if (d->copyDevice)
disconnect(d->copyDevice, 0, this, 0);
QNetworkReply::close();
// call finished which will emit signals
d->error(OperationCanceledError, tr("Operation canceled"));
d->finished();
}