QNetworkReply を QString/QByteArray に保存できるようにしたいと考えています。私が見た例では、常にストリームを別のファイルに保存しています。
現時点で、私のコードは次のようになっています。ホストから文字列を取得し、それを解析して指定されたエラー コードを探すだけです。
if(_reply->error() == QNetworkReply::UnknownContentError) {
qDebug() << _reply->readAll(); // prints out the xml message
QString test = QString(_reply->readAll());
qDebug() << test; // ""
QByteArray test2 = QByteArray(_reply->readAll());
qDebug() << test2; // ""
QRegExp rxlen("(<code>)(.*(?=</code>))");
rxlen.setMinimal(true);
int pos = rxlen.indexIn(test); // pos == -1
if(pos > -1) {
qDebug() << rxlen.cap(2); // never hit
}
}
メッセージはかなり小さく、次のようになります。
<?xml version="1.0" encoding="utf-8"?>
<error>
<code>string-value</code>
<message>string-value</message>
</error>
では、どうすればこの小さなストリームをメモリにロードしたり、エラー コードを探すことができるでしょうか?