http://bbs.csdn.net/topics/190020986

 

delphi 利用indy解码Gzip的网页2007-09-08 18:36function WebRequest.Get(strURL, strReferer: String): String;
var
    strHTML: String;
    inStream, outStream: TMemoryStream;
    m : TStrings;
begin
    inStream := TMemoryStream.Create;
    m := TStrings.Create;

if sck.Connected = true then
    begin
      sck.Disconnect;
      while sck.Connected = true do
        Application.ProcessMessages;
    end;
    SetHeader(strReferer);

    sck.Get(strURL, inStream);
    if sck.Response.ContentEncoding = 'gzip' then
    begin
      outStream := TMemoryStream.Create;
      sck.Compressor.DecompressGZipStream(inStream, outStream);
      outStream.Position := 0;
      m.LoadFromStream(outStream);
      strHTML := m.Text;
    end
    else
    begin
      m.LoadFromStream(inStream);
      strHTML := m.Text;
    end;

    prevPage := strURL;
    strBuff := strHTML;
    Result := strHTML;
end;