var ms:Tmemorystream;
 begin
 .....
idhttp.request.acceptencoding='gzip';
 ...
idhttp.get(url,ms);
 ....ms是一个gzip的http包,存成zip文件可以解压和查看被压缩的内容。
希望不用到文件在内存中解压并得到源文件的html代码。
小弟目前只想到 ms.SaveToFile(file1) , decompress(file1 to file2) , loadfromfile(file2)...好麻烦哦

解决方案 »

  1.   

    [Delphi] type TDecompressionStream = class (ZLib.TCustomZlibStream);TDecompressionStream  看是不是你要的
      

  2.   

    不是,delphi 自带的zlib好像不好用。read 哪个stream都出错。我看HTTPLOOK用的是zlib1.2.2的dll文件,他就可以把gzip解开,请教一下zlib的dll接口使用方法http://www.zlib.net已去,未找到。
      

  3.   

    哭在zlib的函数库中未发现gzio,给我感觉是自带的zlib不支持gzip文件解压。
      

  4.   

    我找了一个zlib库,但不是新的,不只那里有新版本库下,一些网站都不能下载
      

  5.   

    无人可以回答?小弟只好封贴了。我在CSDN问的问题,怎么次次都不了了之阿?
      

  6.   

    你将编码设置为空
    idhttp.request.acceptencoding='';GET返回给你的就是未编码的HTML
      

  7.   

    肯定不行阿,我写acceptencoding只是强调我请求的是gzip格式的,就算我不写,对方给我的response的header里的Content-Encoding也会写明给我接受的http包是gzip的。
      

  8.   

    试了一下Indy的:
    TIdZLibCompressorBase.DecompressGZipStream
    还是不行:Stream write error.
      

  9.   

    搞定了:-)楼主的代码改成下面这样应该就可以了:IdCompressorZLibEx1.DecompressGZipStream(ms, html_stream);
      

  10.   

    不知道楼上说的IdCompressorZLibEx1在哪个单元里面呢?