用IDHTTP从下列网址获取Peer的列表。用IE、OPERA、FireFOX都能获得正常的字符串列表,但用IDHTTP或Api获取就是另一种形式的结果,各位老大看看有何解决办法。网址请求url如下:
http://bt.cqmovie.net:8080/announce?info_hash=%A0%60%02%BA1%22%29%92y%E0%05%CBO%88NP%1FL%5E%C4&peer_id=%2DYB0001%2D2%2D4297%2D8%2D38F&port=27456&uploaded=0&downloaded=0&left=4767952606&ip=192.168.1.2&numwant=100&no_peer_id=1正常的返回字符串类似以下
d8:completei13e10:incompletei111e8:intervali1600e5:peersld2:ip14:222.137.30.1364:porti20416eed2:ip14:121.68.148.1404:porti11201eed2:i用S:=HTTP1.GET(URL);或internetopenurl都不能获取。
大家试验一下。找找解决办法。

解决方案 »

  1.   

    返回的内容是压缩后的,把它解开就是了:)
    Content-Encoding: gzip
      

  2.   

    确实是GZIP压缩了的。但问题又来了。怎么解压缩阿。找到的Gzip的都是基于文件的。没有流解压或字符串的。郁闷了
      

  3.   

    网上有Gzip Compress控件,你下一个试试
      

  4.   

    如果你用的是indy10,
    可以试试TIdCompressorZLibEx:
    uses
     IdCompressorZLibEx;var
     aCompress:TIdCompressorZLibEx;
    begin
     ..
     aCompress.DecompressGZipStream(InStream,OutStream);
      

  5.   

    网上的Gzip解压缩的都不能正确解开。结贴!