1
我希望能够将QNetworkReply保存为QString/QByteArray。在我见过的例子中,他们总是将流保存到另一个文件中。保存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 2012-03-27 20:49:58
更具体地说,它是一个顺序访问'QIODevice',导致“一次读取,然后它不见了”的行为。您可以在[QNetworkReply]的详细说明(http://qt-project.org/doc/qt-5/qnetworkreply.html)中阅读更多内容。 – 2014-02-02 23:28:32