网站建设及报价方案,十大免费网站免费下载软件,宁津网站开发,好网站制作这里写目录标题 一、项目场景1.QT客户端与服务端通信时#xff0c;转化步骤如下#xff1a;2.原数据示例3.转化后数据 二、问题描述1.采用Soap协议2.采用HTTP协议 三、原因分析四、解决方案 一、项目场景
1.QT客户端与服务端通信时#xff0c;转化步骤如下#xff1a;
1转化步骤如下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/tVo47783sx9hbIickDVnY2tIv/HgX7AHYxtuk/h1wR2SYjGe08LIqAXzNKMKJCApXd5Y9uJOe7wTyEHxUWOe6QfxVatm5jXEP/1xnGg7npRMATJfzQ5WvUreKMjGjN9wf8hZuAtgAAAA二、问题描述
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))