如何使用 QNetworkRequest 设置请求正文

问题描述 投票:0回答:1

我目前在 Qt6 中发布到 ReST 服务器,如下所示:

QNetworkRequest request;
request.setUrl(QUrl("someurl"));
QUrlQuery postData;
postData.addQueryItem("somekey","somevalue");
nm = new QNetworkAccessManager
reply = nm->post(request,postData.toString(QUrl::FullyEncoded).toUtf8());

但是,我被告知我需要在请求正文中发送一些 JSON。 我在哪里设置帖子正文? ->post方法的第二个参数是查询参数。

我猜我需要将正文(json 文档)与 postData 结合起来,但我不确定如何组合。

c++ rest qt post qnetworkrequest
1个回答
0
投票

这是不正确的:->post方法的第二个参数是查询参数。

使用此变体的第二个参数是发送正文,您必须将 QUrlQuery 放在 QUrl 中。

QUrl url("someurl");

QUrlQuery query;
query.addQueryItem("somekey","somevalue")
url.setQuery(query);

QNetworkRequest request;
request.setUrl(QUrl);

QJsonObject obj;
obj["key1"] = "value1";
obj["key2"] = "value2";
QJsonDocument doc(obj);
QByteArray data = doc.toJson();

nm = new QNetworkAccessManager();
reply = nm->post(request, data);
© www.soinside.com 2019 - 2024. All rights reserved.