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字符串的开头,我认为问题的根源就在那里。谁能帮忙?
不知道 gzip 流从哪里开始可能是也可能不是您的问题。(事实上,可能不是。在任何情况下,您都可以搜索三字节序列1f 8b 08
来识别候选 gzip 流。从1f
开始解压缩,看看它是否真的是一个 gzip 流。