目录1、利用Qt提供的类实现向服务器发送post和get请求2、实现文件上传1、利用Qt提供的类实现向服务器发送post和get请求#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#pragma execution_character_set("utf-8")
void sendPostRequest()
{
QNetworkAccessManager *m_pHttpMgr = new QNetworkAccessManager();
//设置url
QString url = "http://localhost:80/post";
//设置头信息
QNetworkRequest requestInfo;
requestInfo.setUrl(QUrl(url));
requestInfo.setHeader(QNetworkRequest::ContentTypeHeader,QVariant("application/json"));
//requestInfo.setRawHeader("Content-Type","application/json");//服务器要求的数据头部
//requestInfo.setRawHeader("Accept","text/json,*/*;q=0.5");//服务器要求的数据头部
//发送数据
QJsonObject regionObject;
regionObject.insert("name","333");
regionObject.insert("height", "2");
regionObject.insert("dir", "0");
QJsonArray pointAry;
pointAry.append(0.8);
pointAry.append(1.0);
pointAry.append(0.0);
pointAry.append(1.8);
pointAry.append(2.0);
pointAry.append(0.0);
regionObject.insert("points", QJsonValue(pointAry));
QJsonObject jsonObject;
jsonObject.insert("Code", "asss");
jsonObject.insert("parentId", 0);
jsonObject.insert("depot", "past");
jsonObject.insert("region", QJsonValue(regionObject));
QJsonDocument jsonDoc;
jsonDoc.setObject(jsonObject);
QByteArray qByteHttpData = jsonDoc.toJson();
QNetworkReply *reply = m_pHttpMgr->post(requestInfo, qByteHttpData);
//添加事件循环机制,返回后再运行后面的
QEventLoop eventLoop;
QObject::connect(reply, SIGNAL(finished()), &eventLoop, SLOT(quit()));
eventLoop.exec(); //block until finish
//错误处理
if (reply->error() != QNetworkReply::NoError)
{
qDebug()error()是Qt定义的错误码,可以参考QT的文档
qDebug( "request protobufHttp found error ....code: %d %d\n", statusCodeV.toInt(), (int)reply->error());
qDebug(qPrintable(reply->errorString()));
}
//请求收到的结果
QByteArray responseByte = reply->readAll();
QString strRes = responseByte;
qDebug() |