我正在努力解压来自 BizTalk Server 的 AS2 请求的 Zlib 压缩 Mime 主体。
事情是:
我收到的 HTTP 正文与预期的一样。我可以阅读 ASCII 编码的 Mime 标头:
"内容类型:application/pkcs7-mime;smime-type=compressed-data;name=smime.p7m\r\n内容-传输-编码:二进制\r\n\r\n"
以两个换行符结束,我期待之后的压缩体。但是当我使用 Ionic.Zlib ZlibStream.UncompressBuffer() 解压缩以下字节时,它会引发错误。
Zlib Header 可以通过例如十六进制编码字节“78da”来识别。当我从那里开始解压缩它时,它工作正常。
两个换行符结束 mime 标头和“78da”开始 zlib 压缩数据之间的字节是多少?
“3080060b2a864886f70d0109100109a0803080020100300f060b2a864886f70d01091003080500308006092a864886f70d010701a080248004820769”
下一个问题,如果我把所有字节都读到最后,最后一个字节是无法解压的。据我了解,zLib 数据应该以 adler32 校验和结尾,但是如何在不尝试解压缩的情况下识别压缩数据的结尾或长度。我在成功解压缩数据后看到一些尾随字节:“1f9b1f1fcbc51f0482000445a59371”那是什么?
谢谢你的想法!