:QNetworkReply :: errorシグナルの後にfinished()シグナルが続きますか?信号について
QNetworkReply::error(QNetworkReply::NetworkError code)
Qtのドキュメントによると:
応答が処理中にエラーを検出すると、この信号が発せられます。 接続が終了したことを示す、finished()シグナルがおそらく続きます。
具体的には、finished()シグナルはいつ放出されますか?
:QNetworkReply :: errorシグナルの後にfinished()シグナルが続きますか?信号について
QNetworkReply::error(QNetworkReply::NetworkError code)
Qtのドキュメントによると:
応答が処理中にエラーを検出すると、この信号が発せられます。 接続が終了したことを示す、finished()シグナルがおそらく続きます。
具体的には、finished()シグナルはいつ放出されますか?
QNetworkReply :: errorシグナルの後にfinished()シグナルが続きますか? 具体的には、finished()シグナルはいつ放出され、 は放出されませんか?
信号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());
}
}
ありがとうございます。私の心配は、「実際には返信は既にエラーで終了しており、内容は読み込まれませんが、finished()シグナルは送信されません」ということですか? – Nyaruko
@ニャルコ実際に私たちはそのようなハンドラに満足しています。また、networkAccessManager.post()が返すQNetworkReply :: sslErrorsシグナルを接続します。 – AlexanderVX
私の場合は、通常のhttpを通じていくつかのファイルをダウンロードしています(そのうちのいくつかは大容量、たとえば100MB)。 sslErrorsについて心配する必要がありますか? Qtのどのバージョンを使用していますか? – Nyaruko
[この](http://stackoverflow.com/questions/18404483/should-i-connect-to-qnetworkreplyerror-as-well)あなたの質問に答えるかもしれません。 –