用indy的idhttp获取网页内容,idhttp的compressor指定了一个TIdCompressorZLib控件。
其它网站都没问题,只发现获取http://www.youku.com/v/的时候蹦出一个ZLib Error (-3)。我用的delphi 2010,弹出错误框的时候选择“break”,居然又弹出一个选择框,让我选择IdZlib.pas的路径,这是怎么回事?从没遇到过这种情况。

解决方案 »

  1.   

    IdZlib.pas
    可能这个单元有问题吧
      

  2.   

    你的项目中有IdZLib.pas路径吗?
    TIdCompressorZLib控件只是一个设计时包,如果你想使用TIdCompressorZLib控件,还必须有它的运行时库(或者源代码),可能是有delphi的库路径中,有可能在项目的库路径中。
      

  3.   


    那怎么其它站不报错,就优酷那个网站报错。郁闷啊,用zlib的ZDecompressStream解压老是data error。要不也不会用TIdCompressorZLib
      

  4.   

    还是用Zlib好,前段时间迁移过一个项目从d7到2010,也经常出现zlib的data error,后面发现主要还是字符串的问题(在字符串转换为流时会丢失数据,或者在流转换为字符串时)。导致完全互为反操作的压缩流和解压流出错。