#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();
}
QT发送POST请求到指定IP并接收返回信息
最新推荐文章于 2023-11-13 17:48:41 发布