簡體   English   中英

保存QNetworkReply

[英]Save QNetworkReply

我希望能夠將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>

那么如何將這個小流加載到內存中,或者只是查找錯誤代碼?

QNetworkReply繼承自QIODevice,這是一個流。 從流中讀取內容后,它就不再存在了。 在你的調試行之后(一個用// prints out the xml message注釋),沒有什么可讀的了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM