一、功能介绍
在项目开发中,设备终端经常需要向服务器上传一些日志或者报告状态信息,下面使用QNetworkAccessManager封装了一个函数方便传入要上传的数据进行上传。 提交的数据格式使用JSON格式,请求方式使用post,代码里没有关联状态槽函数,实际运用里上传的数据量比较小,数据会间断性重复上传,就没判断成功状态。
二、核心代码
#define TOKEN "abc-def-ghi-jkl-mno" QString DeviceID="123456789"; QNetworkAccessManager SendErrorInfo_manager; void SERVER_SendErrorInfo(QString text) { //请求地址 QString requestUrl; QNetworkRequest request; //请求地址 requestUrl="http://192.168.1.123:6666/carmonitorsys/errlog/upload.action?"; requestUrl+=QString("token=%1&").arg(TOKEN); //授权码 requestUrl+=QString("devId=%1").arg(DeviceID); //设备编号 //设置请求地址 QUrl url; url.setUrl(requestUrl); request.setUrl(url); request.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/json")); //打包请求参数赋值 QJsonObject post_data; QJsonDocument document; QByteArray post_param; post_data.insert("msg",text); //插入数据 document.setObject(post_data); post_param = document.toJson(QJsonDocument::Compact); //开始上传 SendErrorInfo_manager.post(request,post_param); }