1
QNetworkReplyをQString/QByteArrayに保存したいと考えています。私が見た例では、彼らは常にストリームを別のファイルに保存しています。Save QNetworkReply
現時点では、私のコードは次のようになります。ホストから文字列を受け取る場所は、指定したエラーコードを調べるために解析するだけです。
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>
それでは、どのように私はメモリにこの小さなストリームを読み込むことができ、または単にエラーコードを探しましたか?
私はまだあなたの答えを受け入れることすらできないので速くなります:) – chikuba
より具体的には、それは「読み取り一度しかやりません」という結果をもたらすシーケンシャルアクセス「QIODevice」です。 [QNetworkReply](http://qt-project.org/doc/qt-5/qnetworkreply.html)の詳細な説明を読むことができます。 –