QT发送POST请求到指定IP并接收返回信息

参考博客 

#include<QJsonObject>
#include<QJsonDocument>
#include<QJsonArray>
#include<qDebug>
#include<QJsonObject>
#include<QJsonDocument>
#include<QJsonArray>
#include<QDebug>
#include<QVector>
#include<QDateTime>
#include<QNetworkAccessManager>
#include<QNetworkRequest>
#include<QString>
#include<QObject>
#include<QJsonObject>
#include<QByteArray>
#include<QNetworkReply>

void MainWindow::post()
{
    QNetworkAccessManager * net_mgr = new QNetworkAccessManager(this);
    connect(net_mgr, SIGNAL(finished(QNetworkReply*)), this, SLOT(finishedSlot(QNetworkReply*)));

    QNetworkRequest net_request;
    net_request.setUrl(QUrl("http://"));

   //要发送的json数据
   QJsonObject sendJsonData;

   //加入object
   QJsonObject tempObject;
   tempObject.insert("a", "1");
   tempObject.insert("b", "2");
   tempObject.insert("c", "3");
   QJsonArray arryReceiveList;
   arryReceiveList.append("0");
   tempObject.insert("d", QJsonValue(arryReceiveList));
   tempObject.insert("e", "4");
   sendJsonData.insert("f", QJsonValue(tempObject));

   //加入array
   QJsonArray arry;
   QJsonObject tempObject1;
   tempObject1.insert("g", "sys.total.cpu.s1");
   tempObject1.insert("h", "fail");
   QJsonObject tempObject1Child;
   tempObject1Child.insert("k", 77);
   tempObject1Child.insert("m", 95);

   tempObject1.insert("inference", QJsonValue(tempObject1Child));
   arry.append(tempObject1);
   sendJsonData.insert("attentions", QJsonValue(arry));
   qDebug()<<"sendJsonData:"<<sendJsonData;

   // 下边这行也很重要,要发送json格式的数据必须要在header里设置,不然不会成功的
   net_request.setHeader(QNetworkRequest::ContentTypeHeader,QVariant("application/json"));
   QJsonDocument document=QJsonDocument(sendJsonData);

   // 这里要将json格式的数据转换为QByteArray才行
   QByteArray post_data = document.toJson(QJsonDocument::Compact);
   net_mgr->post(net_request, post_data);
}


void MainWindow::finishedSlot(QNetworkReply* reply)
{
    if (reply->error() == QNetworkReply::NoError)
    {
        QByteArray bytes = reply->readAll();
        // 下边我们将收到的body部分解析为json格式,其中有个key是status
        QJsonDocument jsonDocument = QJsonDocument::fromJson(bytes);
        QJsonObject jsonObject = jsonDocument.object();
        qDebug()<<jsonObject;
        QString value = jsonObject.value("status").toString();
    }
    reply->deleteLater();
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

aspiretop

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值