微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

压缩的 AS2 正文

如何解决压缩的 AS2 正文

我正在努力解压来自 BizTalk Server 的 AS2 请求的 Zlib 压缩 Mime 正文。

事情是:

我收到的 HTTP 正文看起来符合预期。我可以读取 ASCII 编码的 Mime Header:

内容类型:application/pkcs7-mime;smime-type=compressed-data;name=smime.p7m\r\nContent-transfer-encoding:二进制\r\n\r\n”

以两个换行符结尾,我期待压缩后的正文。 但是当我使用 Ionic.Zlib ZlibStream.UncompressBuffer() 解压缩以下字节时,它会引发错误

Zlib Header 可以通过例如十六进制编码字节“78da”来识别。当我从那里开始解压缩它时,它工作正常。

结束 mime header 和 "78da" 开始 zlib 压缩数据的两个换行符之间的字节是多少?

“3080060b2a864886f70d0109100109a0803080020100300f060b2a864886f70d01091003080500308006092a86006092a864080804080808080808080100300f060b2a864886f70408010080801008080808010010060100601003001000000201003000600606086060b2a8648886060100300f060b2a864886f70d01091

一个问题,如果我把所有字节读到最后,最后一个字节不能解压。 据我了解,zLib 数据应该以 adler32 校验和结尾,但是如何在不尝试解压缩的情况下识别压缩数据的结尾或长度。 在成功解压缩数据后,我看到一些尾随字节: “1f9b1f1fcbc51f0482000445a59371” 那是什么?

感谢您的想法!

解决方法

不解压就找不到压缩数据的结尾。你不需要保存解压的结果,但你至少需要解码所有的压缩数据才能找到它自己终止的位置。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。