再问SPI截获的GZIP压缩的数据的解压!

时间:2022-12-16 20:00:15
数据形式如下:

HTTP/1.1 200 OK
Date: Tue, 03 Aug 2004 09:42:21 GMT
Server: Apache/2.0.50 (Unix)
Pragma: no-cache
Cache-Control: no-cache
Expires: 0
Vary: Accept-Encoding,User-Agent
Content-Encoding: gzip
Content-Length: 1101
Connection: close
Content-Type: text/html; charset=gb2312

?      蚔遫E~蟔?翹$l7m攛棦B+膹?B怔n}辴o鞲]??肹蔆bDI覉4jJ*詳ㄢ
E*j??Z?1{謦!蜮涃跷蝲;咛擾淑QU启<a絆c扭@E{虃咶棉*簄1?%勞矶璱峇蹞!淑+ec#δ'Z弧撆 ?埣2T鍸\倉??湭ペB崢直招:w湊厑]8Y2&???A凵椎=??艝祿??潦?pM<€OH5A苐瀪襠-lUバT椟{p蹷^O脎1N 疉bE5j臨??瘱楟(;=聀鷔预逜溨uH鈥 \p憱Q_qQOh3_7p?▂/PQ?禿嬈u.垸蝬凒>Ilて)丕1禱€剅遟"€矲S?虭??g伬!貋泯珚.?摠R?皜.?帺?N斅簲€譭庆W署4苫縧!)<渭K貧&-"=辠聴m[FTg榆€誊??N漲枢!M甧s(涥F?Vus▏?#j)y嵞X?
﹉??官Q蒝L鄵h\zDEi鎋賾 ?
o0?o沂G晨??嵶! 鸟€d!勨越泪~℉M譀耤> F鼒?茅?NO5螸_8囷驭?蟳`?]c缵T_縋フ?7貊垣晏+臦w昴╀3V;u矘葏尡垕橮湺€~n?\0?6n_當侎iR篐呸岬妧O雟狸謰?C?綛1?鼱橨偔澒屙?瀩m琨卂Wfn浺2?3;腙室陑n~窕汯縨\劬12q腌k縪韒綏[唠?>6鈼O?7只慧w枮e譜?~骽狺鍸霭T4W?聩孚荃瀘?浃砄你€貮^Zh繈栗楷仩嘮wy顉鬓?\?嫵环?>?安0减p鼳w髹?骰k唸#貱╦?€r??$灳豑$牰粳'{灃2??N悙?^纕8潖舟Ig€?样h?vt>?甥7?纟?愚I?G浿遦孠77?<]軰樥汵'"hB 乐0布泴,至^
~Z綐V劉渮跒V笑湠?d_L篰异襥'偣??3'+需&=\(岯溜?貰?醼主????&啞瞔&J杠閸?枒]L?  


那位高手能帮我做一下解压,高分相送(200)!

问题是这样的 ,我根据Content-Length: 1101字段,把压缩的数据取出来,我把“\r\n”去除了的,使用ZLIB函数库解压,总是失败,说数据是坏的,我搞了2天,没辙了,只好请高手帮忙。

还有有的朋友说参考费尔的代码

费尔的代码在有的应用程序上接收不到RECV的数据(比如IE),而且他不检查数据的!

6 个解决方案

#1


刚做过此类的东东,
Content-Length:是请求的文件长度,不包括包头部分,在写文件的时候,自己要去掉包头部分。
在接收第一包的数据(我的长度设定是1024),查找字符串"\r\n\r\n",一般情况下"\r\n\r\n"后面的数据就是我们要的文件数据,但是有的httpServer会在"\r\n\r\n"后面再发送几个“\r\n”,因此要把所有的“\r\n”都去掉。

#2


大哥,能说说你处理的流程么?
我把这些数据放在一个文本文件里了,我不知道你说的写文件是什么意思,是把自己做成一个ZIP文件吗?怎么做呢?

#3


用二进制文件处理,文本文件有时候会出问题。

当然是从现有的数据里面,自己作一个zip文件,去掉包头部分,剩余的部分写入文件,写完之后确认你的zip文件长度是Content-Length: 1101,这么easy的事情,还要什么流程啊

#4


安装ultraedit没有?用ultraedit看看文件的格式

#5


但是我看见ZLIB库里面有直接解压一个字串的函数的呀,为什么非要做成一个ZIP 文件呢?

#6


搞定!谢谢楼上的高手!给分

#1


刚做过此类的东东,
Content-Length:是请求的文件长度,不包括包头部分,在写文件的时候,自己要去掉包头部分。
在接收第一包的数据(我的长度设定是1024),查找字符串"\r\n\r\n",一般情况下"\r\n\r\n"后面的数据就是我们要的文件数据,但是有的httpServer会在"\r\n\r\n"后面再发送几个“\r\n”,因此要把所有的“\r\n”都去掉。

#2


大哥,能说说你处理的流程么?
我把这些数据放在一个文本文件里了,我不知道你说的写文件是什么意思,是把自己做成一个ZIP文件吗?怎么做呢?

#3


用二进制文件处理,文本文件有时候会出问题。

当然是从现有的数据里面,自己作一个zip文件,去掉包头部分,剩余的部分写入文件,写完之后确认你的zip文件长度是Content-Length: 1101,这么easy的事情,还要什么流程啊

#4


安装ultraedit没有?用ultraedit看看文件的格式

#5


但是我看见ZLIB库里面有直接解压一个字串的函数的呀,为什么非要做成一个ZIP 文件呢?

#6


搞定!谢谢楼上的高手!给分