2010-05-07 348 views
0

我使用QPlainTextEdit作爲HTML編輯器,通過QNetworkAccessManager通過HTTP帖子保存數據。從QString轉換爲QByteArray時數據丟失

我在使用HTML特殊字符(如&(與號))時遇到數據丟失 我正在用QByteArray構建POST請求(如文檔中所述)。

QByteArray postData; 
QMapIterator<QString, QString> i(params); 
while(i.hasNext()) { 
    i.next(); 
    postData 
     .append(i.key().toUtf8()) 
     .append("=") 
     .append(i.value().toUtf8()) 
     .append("&"); 
} 

postData.remove(postData.length()-1, 1); 

//Do request 
QNetworkRequest postRequest = QNetworkRequest(res); 
oManager.post(postRequest, postData); 

回答

2

我不是Qt網絡編程方面的專家,但您的代碼看起來像重新發明了方向盤。查看QUrl類 - 它具有查詢參數,主機,方案等的設置程序,並可通過QNetworkRequest直接使用。

+0

我終於找到了QUrl和Encoded()函數的解決方案,感謝您的回答。 – 2010-05-07 12:09:39