QT网络编程: 使用QNetworkAccessManager上传post请求

举报
DS小龙哥 发表于 2021/12/10 00:42:57 2021/12/10
【摘要】 一、功能介绍 在项目开发中,设备终端经常需要向服务器上传一些日志或者报告状态信息,下面使用QNetworkAccessManager封装了一个函数方便传入要上传的数据进行上传。 提交的数据格式使用JSON格式,请求方式使用post,代码里没有关联状态槽函数,实际运用里上传的数据量比较小,数据会间断性重复上传,就没判断成功状态。 二、...

一、功能介绍

在项目开发中,设备终端经常需要向服务器上传一些日志或者报告状态信息,下面使用QNetworkAccessManager封装了一个函数方便传入要上传的数据进行上传。 提交的数据格式使用JSON格式,请求方式使用post,代码里没有关联状态槽函数,实际运用里上传的数据量比较小,数据会间断性重复上传,就没判断成功状态。

二、核心代码


  
  1. #define TOKEN "abc-def-ghi-jkl-mno"
  2. QString DeviceID="123456789";
  3. QNetworkAccessManager SendErrorInfo_manager;
  4. void SERVER_SendErrorInfo(QString text)
  5. {
  6. //请求地址
  7. QString requestUrl;
  8. QNetworkRequest request;
  9. //请求地址
  10. requestUrl="http://192.168.1.123:6666/carmonitorsys/errlog/upload.action?";
  11. requestUrl+=QString("token=%1&").arg(TOKEN); //授权码
  12. requestUrl+=QString("devId=%1").arg(DeviceID); //设备编号
  13. //设置请求地址
  14. QUrl url;
  15. url.setUrl(requestUrl);
  16. request.setUrl(url);
  17. request.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/json"));
  18. //打包请求参数赋值
  19. QJsonObject post_data;
  20. QJsonDocument document;
  21. QByteArray post_param;
  22. post_data.insert("msg",text); //插入数据
  23. document.setObject(post_data);
  24. post_param = document.toJson(QJsonDocument::Compact);
  25. //开始上传
  26. SendErrorInfo_manager.post(request,post_param);
  27. }

 

文章来源: xiaolong.blog.csdn.net,作者:DS小龙哥,版权归原作者所有,如需转载,请联系作者。

原文链接:xiaolong.blog.csdn.net/article/details/108599005

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。