すでに同じ質問がありましたが、単一の回答は役に立ちません: Qt Download File - QNetworkAccessManager, not gets data
だから、私はファイルをダウンロードしようとしています:
QNetworkRequest request;
request.setUrl(QUrl(fileUrl));
QNetworkReply * reply = m_nam.get(request);
connect(reply, SIGNAL(finished()), this, SLOT(onDownloadRequestFinished()), Qt::UniqueConnection);
connect(reply, SIGNAL(downloadProgress(qint64, qint64)), this, SLOT(onDownloadRequestProgress(qint64, qint64)), Qt::UniqueConnection);
そしてonDownloadRequestFinished
スロットで:
QNetworkReply * reply = qobject_cast<QNetworkReply *>(sender());
if (reply && reply->error() == QNetworkReply::NoError) {
Q_ASSERT(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt() == 200);
qDebug() << "reply " << reply->bytesAvailable() << reply->pos() << reply->size() << reply->isReadable() << reply->openMode() << reply->isOpen();
}
スロットは次のように出力します: reply 0 0 0 true OpenMode( "ReadOnly" ) true
So, no data. ただし、どこかに何かをダウンロードしていることははっきりとわかります。から判断すると、それは大きなファイルであり、ダウンロードしますonDownloadRequestProgress
。
重要な説明: 同じコンピューター上の別のプロジェクトでも、ほとんど同じコードが機能します。違いを見つけようとしていますが、今のところ何も見つかりません。
データはどこにありますか?