求人不如求已..唉... 直接用Fhttp.Compressor:= TIdCompressorZLibEx.Create(nil); 就OK了..
另外Delphi2007下.. idhttp.. cookie 有问题..长度限制78就换行.. 调了一晚上..唉..在源码中..idhttpheaderinf
第255行..FRawHeaders.FoldLength := 78; 改大点就OK了... 这里改成2048; //完美运行... 真不明白..indy开发者为嘛要限制为78这么小...
indy10.2-->163行,IdHeaderList, FFoldLinesLength := 2048; //78;
**********************以下内容..弃用...
delphi 利用indy解码Gzip的网页2007-09-08 18:36
function 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;
使用Indy在Delphi中解码GZIP网页
本文介绍了如何在Delphi 2007中利用Indy库来解码GZIP压缩的网页内容。通过设置TIdCompressorZLibEx并调整IdHTTP的Header FoldLength限制,成功解决了解码和长Cookie处理问题。
1万+

被折叠的 条评论
为什么被折叠?



