QT网络编程: 使用QNetworkAccessManager上传post请求
【摘要】
一、功能介绍
在项目开发中,设备终端经常需要向服务器上传一些日志或者报告状态信息,下面使用QNetworkAccessManager封装了一个函数方便传入要上传的数据进行上传。 提交的数据格式使用JSON格式,请求方式使用post,代码里没有关联状态槽函数,实际运用里上传的数据量比较小,数据会间断性重复上传,就没判断成功状态。
二、...
一、功能介绍
在项目开发中,设备终端经常需要向服务器上传一些日志或者报告状态信息,下面使用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);
-
}
文章来源: xiaolong.blog.csdn.net,作者:DS小龙哥,版权归原作者所有,如需转载,请联系作者。
原文链接:xiaolong.blog.csdn.net/article/details/108599005
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)