byte[] httpDecompress(HttpDatagram http)
{
int magicnum = 0x1f8b;
Stream str= http.Body.ToMemoryStream();
using (var zipStream = new GZipStream(str, CompressionMode.Decompress))
using (var resultStream = new MemoryStream())
{
zipStream.CopyTo(resultStream);
return resultStream.ToArray();
}
}
有代码,但它给出了一个幻数错误。我怎么能找到GZip字符串的开头,我认为问题的根源就在那里。有人可以帮忙吗?
答案 0 :(得分:0)
不知道gzip流的启动位置可能是您的问题,也可能不是。 (事实上,可能不是。)在任何情况下,您都可以搜索三字节序列1f 8b 08
来识别候选gzip流。从1f
开始解压缩,看看它是否真的是一个gzip流。