C++ 膨胀HTML gZIP内容时出现错误“无效距离太远”

C++ 膨胀HTML gZIP内容时出现错误“无效距离太远”,c++,c,zlib,inflate,C++,C,Zlib,Inflate,我想膨胀HTML网页。我正在使用zlib函数 inflateInit2(&zstream,15+32) 然后 充气(&zstream,Z_SYNC_FLUSH) 它适用于许多网页,但对于“www.tabnak.ir”,它不能正常工作。 无效距离太远是我为此网站得到的错误。 这个网页也是gzip和utf8。 我该怎么处理呢 这是为Bing.com设计的,效果很好 1f 8b 08 00 ef 8c 77 56 00 ff ec 5a eb 73 9c 46 12 ff 9e aa fc 0f 04

我想膨胀HTML网页。我正在使用zlib函数
inflateInit2(&zstream,15+32)
然后
充气(&zstream,Z_SYNC_FLUSH)

它适用于许多网页,但对于“www.tabnak.ir”,它不能正常工作。
无效距离太远
是我为此网站得到的错误。 这个网页也是gzip和utf8。 我该怎么处理呢

这是为Bing.com设计的,效果很好

1f 8b 08 00 ef 8c 77 56 00 ff ec 5a eb 73 9c 46
12 ff 9e aa fc 0f 04 d5 9d ad 78 1f c0 3e b4 0b
96 52 b2 24 2b ba 73 1c 9d 2d 27 b9 8a af b6 06
这是针对tabnak.ir的,它会导致
无效距离太远
错误

1f 8b 08 00 03 ed fd db 73 5b d7
99 2f 8a 3e ab d6 ff 30 ac ae ac d8 3b 82 80
39 71 a7 6d 55 39 89 7b 75 f7 4a d2 7d 92 74 af

您试图“充气”(使用zlib解压)的文件似乎不是有效的zip文件。由于bing.com很可能不是zlib文件,所以您很早就发现了阻止解压缩的内容,这可能纯粹是巧合

zlib/gzip格式执行压缩,例如“接下来的22个字节与我们在1013个字节之前看到的22个字节相同

在这种情况下,描述重复的记录来自“窗口”大小之前

如果您指定了窗口的最大大小,则很可能是数据格式发生了一些变化,或者您收到的数据与发送的数据不同

有些东西需要检查

  • 您正在使用最新的zlib库
  • 标准实用程序(例如,
    gunzip
    winzip
    )可以解压缩数据
  • 您正在获取的数据没有被文本筛选器损坏(
    'rb'
    vs
    'rt'

  • 如果这没有帮助,请尝试浏览数据并了解gzip中的故障是什么。

    0x1f8b0800看起来很清楚…标题是输出的。据我所知,您得到的错误是因为您的zlib版本限制了可以查找a的距离。我无法从这些示例中看出任何东西,因为它们太小了rt返回错误。示例在第一个动态块头的中途停止。您能提供完整的流吗?