我一直在成功使用QNetworkAccessManager来获取和发布请求。
但我需要使用PUT请求更新和外部API。此PUT请求需要一个json字符串作为其发送以更新记录的主体的一部分。
我找不到任何使用QNetworkAccessManager的PUT请求的工作示例。
请帮助分享示例代码。
答案 0 :(得分:2)
最后,我找到了一种在QNetworkAccessManager PUT请求中发送Json数据的方法。
我形成了所需的json数据并将其存储在QJsonDocument变量中。并在put请求中传递了该变量(在使用toJson()转换为utf-8编码的json文档之后)。
以下是我使用的工作测试代码,我认为这对尝试此操作的人有帮助。
QVariantMap testMapData["age"] = 35;
QJsonDocument testJsonData = QJsonDocument::fromVariant(testMapData);
QNetworkAccessManager manager;
QNetworkRequest request(QUrl("http://example/member/14"));
request.setHeader(QNetworkRequest::ContentTypeHeader, QString("application/json"));
QNetworkReply* reply = manager.put(request, testJsonData.toJson());
答案 1 :(得分:0)
http://doc.qt.io/qt-5/qnetworkaccessmanager.html#put-3
您可以使用QNetworkAccessManager::put(const QNetworkRequest & request, const QByteArray & data)
方法。
QNetworkAccessManager manager;
QByteArray someData = "data";
QNetworkRequest request(QUrl("http://example.com"));
QNetworkReply* reply = manager.put(request, someData);