HttpWebRequest & Native GZip Compression

前端 未结 6 1005
生来不讨喜
生来不讨喜 2020-11-29 21:10

When requesting a page with Gzip compression I am getting a lot of the following errors:

System.IO.InvalidDataException: The CRC in GZip footer does

6条回答
  •  醉话见心
    2020-11-29 21:47

    The native GZipStream can read a compressed GZIP (RFC 1952) stream, but it can't handle the ZIP file format.

    From http://www.geekpedia.com/tutorial190_Zipping-files-using-GZipStream.html:

    The disadvantage of using the GZipStream class over a 3rd party product is that it has limited capabilities. One of the limitations is that you cannot give a name to the file that you place in the archive. When GZipStream compresses the file into a ZIP archive, it takes the sequence of bytes from that file and uses compression algorithms that create a smaller sequence of bytes. The new sequence of bytes is put into the new ZIP file. When you open the ZIP file you will open the archived file itself; most popular ZIP extractors (WinZip, WinRar, etc.) will show you the content of the ZIP as a file that has the same as the archive itself.


    EDIT: The above note is incorrect. GZipStream does not produce a ZIP file. It is not a "Single file ZIP stream". It is a GZIP Stream. They are different things. There's no guarantee that tools that handle ZIP archives will handle a .gz file.


    For an implementation that can read ZIP archives, as opposed to single-file ZIP streams, try #ziplib (SharpZipLib, formerly NZipLib).

提交回复
热议问题