- 主题:WCF的base64binary如何在客户端反序列化
WCF的base64binary如何在客户端反序列化,也就是使用在客户端如何将byte[]类型的base64binary如何还原出来,研究了几天,没有搞定,总是显示乱码,另外,服务器端的程序是黑匣子,无法了解里面序列化过程。求高手指点迷津,在网上看了很多资料,有人说windows下面将byte[]的base64binary序列化传输的时候是采用gzip压缩传输的,客户端需要解压缩,结果我找了个gzip解压的函数,结果说幻数不正确,不知道哪位仁兄可以告诉如何客户端如何解码的方法。
--
FROM 219.140.167.*
gzip有两种编码方式,一种叫deflate,一种叫gzip,差别是gzip有个幻数1F8B08
--
FROM 61.135.169.*
兄弟是否知道如何解码吗?现将内容复制如下:
HTTP/1.1 200 OK
Content-Length: 1148
Content-Type: text/xml; charset=utf-8
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
Date: Fri, 29 Mar 2013 04:30:17 GMT
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><GetAllHistoryByNameAndTime0320Response xmlns="http://tempuri.org/"><GetAllHistoryByNameAndTime0320Result>YgAAAHiczZm9btswEIBfJdBaWCRF/UMR4BodgjqxAxtFt4JQ5JiAJRYUEzd9hg7d+gTdM3Tq0qdp0McoJVttAjssYuDKTBZ5Z5Kfjne8o7KhlOxmsnhd3rxhq6tysmiU5PXltnt4fjJaMqk62TmP4+Js+G569KFa1c2xs1TqfYpQUywAAMuKNW7FCykasVBuISrkYUwRwWhWSs5W/CNTXNSoG7dxNiOk/M8Y6/XaXVNXyMv2jwS9PR3PumEHvG4Uq4vSybMnLbJTz6cTgnGG2sesk29nZjurv2CKFaJWkhWqX4ePcIRe1dcjyVWL4b4cj/U6WPpgyrbjpBnziqvmiKc1Xx0AADtKXpUOaiWnot5oeX6G7jU70XX76Pl5gDeyvq2FU9Hw9pWdsarMf3398fPTl7vbb3ffP7eaD4Raeaa61zsSF2VOMCXDVul+p9aZ86qcCl6r3MOEDjAdePGc0BTjFHfT/1VoWzuIhzCT5HFmP7TF7NtjpraYA1Bm0972iS3mEJQAAJkGjzPTxBZzBMrc23Ivc2yLOYa1s2Fv08gWcwLrz7GBObDE7GFYZkPc7vfA/2cmsP5simG2zirPA2UO6XO0M2weZoxhduyczDGsP1OTnT1bzLD+HDy/va2ZYf05NuUkds5nzQzrz5HpfLaTe2pm2LoqxoYaw079rJlh66rI4M8AAPaYYeuq0JCT+NbiNmxdRUhogLaTcGto2MKKBIYoFti5NdDQsJUV8Q2WDuxciSVzApuKEd9g6dBWHCOgudg+yRZxV3Qo8O5I+0m3GdiLzqP/yYv63ydeuKNDPibkvwHQU5FLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==</GetAllHistoryByNameAndTime0320Result></GetAllHistoryByNameAndTime0320Response></s:Body></s:Envelope>
--
FROM 219.140.167.*
人肉解码一下:
1. 先做Base64解码
YgAAAHiczZm9btswEIBfJdBaWCRF/UMR => 62 00 00 00 78 9c cd 99 bd 6e db 30 10 80 5f 25 d0 5a 58 24 45 fd 43 11
可以看出:62 00 00 00 是一个little-endian的整数 98 (0x62) 78 9c是inflate编码的幻数。
2. 接下来应该是inflate包,尝试解码得到6666个字节:
3c 41 72 72 61 79 4f 66 4b 65 79 56 61 6c 75 65 4f 66...
3. 尝试以ascii识别:
<ArrayOfKeyValueOfstringArrayOfAQIChartValueQi88cNA_P xmlns="http://scfemas.microsoft.com/2003/10/Serialization/s":iwww.w3.org/2001/XMLSema-instance"><><>PO100</><:aemas.datacontract.org/2004/07/EnvCriteria.BLL"><a:><a:IsLimits i:nil01/XMLSema-instance"><><a:IsLimits i:nil01/XMLSema-instance"><><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>50</IsMov><24>:IsPosiName>è??a??ae°?ae??</IsPosiName>:IsStaCode>1031A</IsStaCode>:IsTimePoint>2013-03-28T13:00:00</IsTimePoint></Is><a:Is><a:IsLimits i:nil01/XM>me"/a:IsMon><a19</IsMon><a:IsMov><24>46</IsMov><24>:IsPosiName>è??a??ae°?ae??</IsPosiName>:IsStaCode>1031A</IsStaCode>:IsTimePoint>2013-03-28T14:00:00</IsTimePoint></Is><a:Is><a:IsLimits i:nil01/XM>me"/a:IsMon><a19</IsMon><a:IsMov><24>43</IsMov><24>:IsPosiName>è??a??ae°?ae??</IsPosiName>:IsStaCode>1031A</IsStaCode>:IsTimePoint>2013-03-28T15:00:00</IsTimePoint></Is><a:Is><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>è??a??ae°?ae??</IsPosiName>:IsStaCode>1031A</IsStaCode>:IsTimePoint>2013-03-28T16><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMov><24>:IsPos4</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>è??a??ae°?ae??</IsPosi35ame>:IsStaCode>1031A</39StaCode>:IsTimePoint>2013-03-28T16><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMov7<24>:IsPos4</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>è??a??ae°?ae??</IsPosiIsStasStaCode>1031A</38StaCode>:IsTimePoint>2013-03-28T16><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMov8<24>:IsPos4</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>è??a??ae°?ae??</IsPosi3Name>:IsStaCode>1031A</37StaCode>:IsTimePoint>2013-03-28T16><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMov9sMon><a24</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>è??a??ae°?ae??</IsPosi8ame>:IsStaCode>1031A</35StaCode>:IsTimePoint>2013-03-28T16><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMov20sMon><a24</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>è??a??ae°?ae??</IsPosiName>:IsStaCode>1031A</3Name>:ICode>:IsTimePoint>2013-03-28T16><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMov21<24>:IsPos4</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>è??a??ae°?ae??</IsPosiI5ame>:IsStaCode>1031A</3sStaCode>:IsTimePoint>2013-03-28T15:00:00</IsTimePoint></Is><a:Is><a:IsLimits i:nil01/XM>me"/a22<24>:IsPos4</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>è??a??ae°?ae??</IsPosi63ame>:IsStaCode>1031A</3Name>:ICode>:IsTimePoint>2013-03-28T16><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMov2IsMon><a19</IsMon><a:IsMov><24>46</IsMov><24>:IsPosiName>è??a??ae°?ae??</IsPosi3Name>:IsStaCode>1031A</3sStaCode>:IsTimePoint>2013-03-28T15:00:00</IsTimePoint></Is><a:Is><a:IsLimits i:nil01/XM>me"9T00sMon><a24</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>è??a??ae°?ae??</IsPosi33ame>:IsStaCode>1031A</32StaCode>:IsTimePoint>2013-03-28T15:00:00</IsTimePoint></Is><a:Is><a:IsLimits i:nil01/XM>me"9T01<24>:IsPos4</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>è??a??ae°?ae??</IsPosi53ame>:IsStaCode>1031A</3Name>:ICode>:IsTimePoint>2013-03-28T16><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMo9T02<24>:IsPos4</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>è??a??ae°?ae??</IsPosi8sStasStaCode>1031A</37StaCode>:IsTimePoint>2013-03-28T16><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMo9T0IsMon><a19</IsMon><a:IsMov><24>46</IsMov><24>:IsPosiName>è??a??ae°?ae??</IsPosi78ame>:IsStaCode>1031A</39StaCode>:IsTimePoint>2013-03-28T16><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMo9T0IsMon><a19</IsMon><a:IsMov><24>43</IsMov><24>:IsPosiName>è??a??ae°?ae??</IsPosi80ame>:IsStaCode>1031A</IsStaCode>:IsTimePoint>2013-03-28T13:00:00</IsTimePoint></Is><a:Is><a:IsLimits i:nil01/XM>me"9T0IsMon><a24</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>è??a??ae°?ae??</IsPosi73ame>:IsStaCode>1031A</imePoint></Is><a:Is><a:IsLimits i:nil01/XM>me"9T0IsMon><a2><a:IsLimits i:nil01/XM>me"9T0IsMon><a24</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>è??a??ae°?ae??/IsPosi35ame>:IsStaCode>1031A</39StaCode>:IsTimePoint>2013-03-28T16><a:IsLimits 6int></Is><a:Is4><a:IsLimits i:nil01/XM>me"9T01<24>:IsPos4</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>è??a??ae°?ae??</IsPosiIsStasStaCode>1031A</38StaCode>:IsTimePoint>2013-03-28T16><a:IsLimits 116nt></Is><a:Is44</IsMon><a:IsMov><24>41</IsMov20sMon><a24</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>è??a??ae°???</IsPosi3Name>:IsStaCode>1031A</37StaCode>:IsTimePoint>2013-03-28T16><a:IsLimits 15:nil01/XM>me"/a:IsMon><a54</IsMon><a:IsMov><24>41</IsMov><24>:IsPos4</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>è??a??ae°?ae??<</IsPosi8ame>:IsStaCode>1031A</35StaCode>:IsTimePoint>2013-03-28T16><a:IsLimits 146nt></Is><a:Is5><a:IsLimits i:nil01/XM>me"/a:IsMon><a19</IsMon><a:IsMov><24>43</IsMov><24>:IsPosiName>è??a??ae°?9T1</IsPosi33ame>:IsStaCode>1031A</32StaCode>:IsTimePoint>2013-03-28T15:00:00</IsTimeP14:nil01/XM>me"/a:IsMon><a6><a:IsLimits i:nil01/XM>me"9T0IsMon><a24</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>è??a??ae°?ae?1/IsPosi53ame>:IsStaCode>1031A</3Name>:ICode>:IsTimePoint>2013-03-28T16><a:IsLimits013-03-28T16><a:Is><a:Is013-03-28T16><a:ts i:nil01/XM>me"9T0IsMon><a24</IsMon><a:IsMov><013-03-28T16><a:iName>è??a??ae°?ae?1/IsPosi+</IsP53ame>:IsStaCode>1031A</3/031A</3/l01/XM>me"/a:IsMon><a24</IsMon><a:IsMov/a:><a:IsLimits i:nil01/XMLSema-instan>
其中有些乱码,估计是字符集不对。
4. 换用UTF-8解码:
<ArrayOfKeyValueOfstringArrayOfAQIChartValueQi88cNA_P xmlns="http://scfemas.microsoft.com/2003/10/Serialization/s":iwww.w3.org/2001/XMLSema-instance"><><>PO100</><:aemas.datacontract.org/2004/07/EnvCriteria.BLL"><a:><a:IsLimits i:nil01/XMLSema-instance"><><a:IsLimits i:nil01/XMLSema-instance"><><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>50</IsMov><24>:IsPosiName>西北水源</IsPosiName>:IsStaCode>1031A</IsStaCode>:IsTimePoint>2013-03-28T13:00:00</IsTimePoint></Is><a:Is><a:IsLimits i:nil01/XM>me"/a:IsMon><a19</IsMon><a:IsMov><24>46</IsMov><24>:IsPosiName>西北水源</IsPosiName>:IsStaCode>1031A</IsStaCode>:IsTimePoint>2013-03-28T14:00:00</IsTimePoint></Is><a:Is><a:IsLimits i:nil01/XM>me"/a:IsMon><a19</IsMon><a:IsMov><24>43</IsMov><24>:IsPosiName>西北水源</IsPosiName>:IsStaCode>1031A</IsStaCode>:IsTimePoint>2013-03-28T15:00:00</IsTimePoint></Is><a:Is><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>西北水源</IsPosiName>:IsStaCode>1031A</IsStaCode>:IsTimePoint>2013-03-28T16><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMov><24>:IsPos4</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>西北水源</IsPosi35ame>:IsStaCode>1031A</39StaCode>:IsTimePoint>2013-03-28T16><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMov7<24>:IsPos4</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>西北水源</IsPosiIsStasStaCode>1031A</38StaCode>:IsTimePoint>2013-03-28T16><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMov8<24>:IsPos4</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>西北水源</IsPosi3Name>:IsStaCode>1031A</37StaCode>:IsTimePoint>2013-03-28T16><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMov9sMon><a24</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>西北水源</IsPosi8ame>:IsStaCode>1031A</35StaCode>:IsTimePoint>2013-03-28T16><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMov20sMon><a24</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>西北水源</IsPosiName>:IsStaCode>1031A</3Name>:ICode>:IsTimePoint>2013-03-28T16><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMov21<24>:IsPos4</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>西北水源</IsPosiI5ame>:IsStaCode>1031A</3sStaCode>:IsTimePoint>2013-03-28T15:00:00</IsTimePoint></Is><a:Is><a:IsLimits i:nil01/XM>me"/a22<24>:IsPos4</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>西北水源</IsPosi63ame>:IsStaCode>1031A</3Name>:ICode>:IsTimePoint>2013-03-28T16><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMov2IsMon><a19</IsMon><a:IsMov><24>46</IsMov><24>:IsPosiName>西北水源</IsPosi3Name>:IsStaCode>1031A</3sStaCode>:IsTimePoint>2013-03-28T15:00:00</IsTimePoint></Is><a:Is><a:IsLimits i:nil01/XM>me"9T00sMon><a24</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>西北水源</IsPosi33ame>:IsStaCode>1031A</32StaCode>:IsTimePoint>2013-03-28T15:00:00</IsTimePoint></Is><a:Is><a:IsLimits i:nil01/XM>me"9T01<24>:IsPos4</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>西北水源</IsPosi53ame>:IsStaCode>1031A</3Name>:ICode>:IsTimePoint>2013-03-28T16><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMo9T02<24>:IsPos4</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>西北水源</IsPosi8sStasStaCode>1031A</37StaCode>:IsTimePoint>2013-03-28T16><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMo9T0IsMon><a19</IsMon><a:IsMov><24>46</IsMov><24>:IsPosiName>西北水源</IsPosi78ame>:IsStaCode>1031A</39StaCode>:IsTimePoint>2013-03-28T16><a:IsLimits i:nil01/XM>me"/a:IsMon><a24</IsMon><a:IsMov><24>41</IsMo9T0IsMon><a19</IsMon><a:IsMov><24>43</IsMov><24>:IsPosiName>西北水源</IsPosi80ame>:IsStaCode>1031A</IsStaCode>:IsTimePoint>2013-03-28T13:00:00</IsTimePoint></Is><a:Is><a:IsLimits i:nil01/XM>me"9T0IsMon><a24</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>西北水源</IsPosi73ame>:IsStaCode>1031A</imePoint></Is><a:Is><a:IsLimits i:nil01/XM>me"9T0IsMon><a2><a:IsLimits i:nil01/XM>me"9T0IsMon><a24</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>西北水源/IsPosi35ame>:IsStaCode>1031A</39StaCode>:IsTimePoint>2013-03-28T16><a:IsLimits 6int></Is><a:Is4><a:IsLimits i:nil01/XM>me"9T01<24>:IsPos4</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>西北水源</IsPosiIsStasStaCode>1031A</38StaCode>:IsTimePoint>2013-03-28T16><a:IsLimits 116nt></Is><a:Is44</IsMon><a:IsMov><24>41</IsMov20sMon><a24</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>西北水?</IsPosi3Name>:IsStaCode>1031A</37StaCode>:IsTimePoint>2013-03-28T16><a:IsLimits 15:nil01/XM>me"/a:IsMon><a54</IsMon><a:IsMov><24>41</IsMov><24>:IsPos4</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>西北水源<</IsPosi8ame>:IsStaCode>1031A</35StaCode>:IsTimePoint>2013-03-28T16><a:IsLimits 146nt></Is><a:Is5><a:IsLimits i:nil01/XM>me"/a:IsMon><a19</IsMon><a:IsMov><24>43</IsMov><24>:IsPosiName>西北水9T1</IsPosi33ame>:IsStaCode>1031A</32StaCode>:IsTimePoint>2013-03-28T15:00:00</IsTimeP14:nil01/XM>me"/a:IsMon><a6><a:IsLimits i:nil01/XM>me"9T0IsMon><a24</IsMon><a:IsMov><24>41</IsMov><24>:IsPosiName>西北水溱/IsPosi53ame>:IsStaCode>1031A</3Name>:ICode>:IsTimePoint>2013-03-28T16><a:IsLimits013-03-28T16><a:Is><a:Is013-03-28T16><a:ts i:nil01/XM>me"9T0IsMon><a24</IsMon><a:IsMov><013-03-28T16><a:iName>西北水溱/IsPosi+</IsP53ame>:IsStaCode>1031A</3/031A</3/l01/XM>me"/a:IsMon><a24</IsMon><a:IsMov/a:><a:IsLimits i:nil01/XMLSema-instan>
以上步骤都可以在浏览器里实现
--
FROM 61.135.169.*
项目描述:
最近从网上获取一个silverlight的网页的数据,通过fiddle2.0分析出了svc文件的链接地址,从而得到了webservice的wsdl描述文件,通过webservices暴露出来的方法进行调用,能够获取普通的string类型的数据,但其中有个函数返回的是byte[] 类型的base64binary,通过直接tobase64string然后获取字符串的时候显示乱码,不知如何解决。求大侠帮助。
采用如下语句调用webservice服务:
EnvAQIServeiceClient myclient = new EnvAQIServeiceClient(); //建立客户端
byte[] base64str =myclient.GetDataAndIAQI0320("北京", ""); //获取数据
string desstr = Encoding.UTF8.GetString(base64str); //转换为字符串
通过上面的语句返回结果如下图(显示为乱码),以下为设置断点跟踪得到的结果:
WSDL的描述文件如下图:
通过fiddle抓包获取的内容如下:
抓包的内容文本如下:
HTTP/1.1 200 OK
Content-Length: 2820
Content-Type: text/xml; charset=utf-8
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
Date: Fri, 29 Mar 2013 05:25:22 GMT
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><GetDataAndIAQI0320Response xmlns="http://tempuri.org/"><GetDataAndIAQI0320Result>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</GetDataAndIAQI0320Result></GetDataAndIAQI0320Response></s:Body></s:Envelope>
通过在网上查阅有网友回答说服务器端对base64binary进行序列化传输的时候采用了gzip压缩,所以又下了一个gzip解码的函数,但解码过程中提示幻数不正确,解码函数如下:
public static byte[] Decompress(Byte[] bytes)
{
using (MemoryStream tempMs = new MemoryStream())
{
using (MemoryStream ms = new MemoryStream(bytes))
{
GZipStream Decompress = new GZipStream(ms, CompressionMode.Decompress);
Decompress.CopyTo(tempMs);
Decompress.Close();
return tempMs.ToArray();
}
}
}
我补充一下上面的内容,楼上这位兄弟回复得很详细,我现在是用C#开发,不知道如何用语句实现,楼上这位仁兄是否可以告知详细语句,把这个xml文本在客户端取出来,直接存到文件当中去
--
FROM 219.140.167.*
说实话,我不会C#.. 总之步骤就是上面的样子,不过有2点:
1. MemoryStream的构造函数指定4偏移:ms = new MemoryStream(bytes, 4, bytes.length-4);
2. 用DeflateStream替换GZipStream
--
FROM 61.135.169.*
兄弟,你是高手,按照你的思路我来研究下
--
FROM 219.140.167.*
byte[] bytes = myclient.GetDataAndIAQI0320("北京", "");
//以下为偏移四个字节
MemoryStream ms = new MemoryStream(bytes, 4, bytes.Length-4 );
string str2 = DecompressString(ms.ToArray());
以下为deflateStream函数:
/// <summary>
/// 解压字符串
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string DecompressString(byte[] str)
{
return Encoding.UTF8.GetString(DecompressBytes(str));
}
/// <summary>
/// 解压二进制
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static byte[] DecompressBytes(byte[] str)
{
var ms = new MemoryStream(str) { Position = 0 };
var outms = new MemoryStream();
using (var deflateStream = new DeflateStream(ms, CompressionMode.Decompress, true))
{
var buf = new byte[1024];
int len;
while ((len = deflateStream.Read(buf, 0, buf.Length)) > 0)
outms.Write(buf, 0, len);
}
return outms.ToArray();
}
但是运行的时候报错,错误提示为:块的长度与它的补集不匹配。
--
FROM 219.140.167.*
还有哪位大全可以指点的啊?
--
FROM 219.140.167.*