QT开发中文网

写一个 qt 代码的 restful 示例,请求 body 和响应 body 都需要有 json 数据,并注释 json 文本内容。

以下是一个简单的 Qt 代码的 RESTful 示例,用于向服务器发送 JSON 请求并解析响应的 JSON 数据。

#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QJsonDocument>
#include <QJsonObject>

void sendRequest()
{
    QNetworkAccessManager manager;
    QNetworkRequest request(QUrl("http://example.com/api/data"));
    request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");

    // 请求 body
    QJsonObject requestBody;
    requestBody.insert("username", "foo");
    requestBody.insert("password", "bar");
    QJsonDocument requestDoc(requestBody);
    QByteArray requestData = requestDoc.toJson();

    QNetworkReply* reply = manager.post(request, requestData);

    QObject::connect(reply, &QNetworkReply::finished, [=]() {
        if (reply->error() == QNetworkReply::NoError) {
            QByteArray responseData = reply->readAll();
            QJsonDocument responseDoc = QJsonDocument::fromJson(responseData);
            QJsonObject responseBody = responseDoc.object();

            // 响应 body
            QString message = responseBody.value("message").toString(); // "请求成功"
            int code = responseBody.value("code").toInt(); // 200
            // ...
        } else {
            qDebug() << "请求失败:" << reply->errorString();
        }

        reply->deleteLater();
    });
}

以上代码中,我们首先使用 QJsonObject 创建了一个 JSON 对象作为请求体,并将其转换为 QByteArray。然后,我们使用 QNetworkAccessManager 发送 POST 请求,将请求体发送给服务器。当收到服务器的响应时,我们从 QNetworkReply 对象中读取响应数据,并将其转换为 JSON 对象进行解析。最后,我们从 JSON 对象中提取出所需的数据。

注释的 JSON 程序文本内容如下:

请求 body:

{
  "username": "foo",
  "password": "bar"
}

响应 body:

{
  "code": 200,
  "message": "请求成功",
  // ...
}

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=823

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?