当前位置: 首页 > news >正文

QT-通信编码格式问题

这里写目录标题

  • 一、项目场景
    • 1.QT客户端与服务端通信时,转化步骤如下:
    • 2.原数据示例
    • 3.转化后数据
  • 二、问题描述
    • 1.采用Soap协议
    • 2.采用HTTP协议
  • 三、原因分析
  • 四、解决方案


一、项目场景

1.QT客户端与服务端通信时,转化步骤如下:

  • 1)客户端先将数据进行json序列化
  • 2)利用SharpZipLib::GZip_Compress进行压缩
  • 3)转化成Base64格式

2.原数据示例

"{ "Function" : "GetSysTime", "IsMutipleReturn" : false, "MessageContent" : "systime", "MessageSequence" : 0, "MsgGuid" : "", "Passport" : "IcsonPDA", "Totals" : 1, "Usage" : "User" }" 

3.转化后数据

"H4sIAAAAAAAA/y2NwQ6CMBBEf6Xp2YNevRmMhAMJEfgAUkfSBLfY3R6I8d/tVo47783sx9hbIic+kDVnY2tIv/HgX7AHYxtuk/h1wR2SYjGe08LIqAXzNKMKJCApXd5Y9uJOe7wTyEHxUWOe6+QfxVatm5jXEP/1xnGg7npRMATJfzQ+5WvUreKMjGjN9wf8hZuAtgAAAA=="

二、问题描述

1.采用Soap协议

客户端采用Soap协议进行通信,服务端利用Zip和GZipInputStream可以解压成功,但接受到的数据不可读格式。在将数据转化为字符串类型后显示为乱码。

2.采用HTTP协议

客户端采用HTTP协议进行通信,服务端利用Zip和GZipInputStream解压报错。错误信息为Error GZIP header, second magic byte doesn’t match。


三、原因分析

猜测服务器在解析Soap协议时,按照byte数组进行解析,所以服务端解析会报错。


四、解决方案

1)先将byte数据转化为字符串;
2)再利用Convert.FromBase64String转换为8-bit unsigned byte array
Convert.FromBase64String(System.Text.Encoding.Default.GetString(requestbytes))


http://www.lryc.cn/news/302147.html

相关文章:

  • 一文了解Web3.0真实社交先驱ERA
  • 微前端(qiankun)vue3+vite
  • 根据Ruoyi做二开
  • DockerFile的应用
  • 爬虫入门一
  • 2024-02-16 web3-区块链-keypass记录
  • 使用 JMimeMagic 在 Java 中识别文件类型
  • yolov8源码解读Detect层
  • (AtCoder Beginner Contest 341)(A - D)
  • python Flask与微信小程序 统计管理
  • 光伏企业助力乡村振兴
  • root MUSIC 算法补充说明
  • 关于Django的中间件使用说明。
  • Chapter 8 - 15. Congestion Management in TCP Storage Networks
  • 前端技巧之svg精灵图svg-sprite-loader
  • IO线程-day2
  • Spring Boot 笔记 024 登录页面
  • 09_Java集合
  • HCIA-HarmonyOS设备开发认证V2.0-3.2.轻量系统内核基础-软件定时器
  • 考研证件照可以自己用手机拍吗?考研证件照p过可以通过审核吗?考研证件照有什么要求
  • win10 环境下Python 3.8按装fastapi paddlepaddle 进行图片文字识别1
  • json字符串的处理
  • Java基础String常见的编程练习
  • 代码随想录算法训练营(回溯5)| 491.递增子序列 46.全排列 47.全排列 II
  • 专业140+总分420+南京信息工程大学811信号与系统考研经验南信大电子信息与通信工程,真题,大纲,参考书
  • 一元函数微分学【高数笔记】
  • (16)Hive——企业调优经验
  • 【详解】图的概念和存储结构(邻接矩阵,邻接表)
  • 【AIGC】Stable Diffusion介绍
  • 2024.2.18 C++QT 作业