delphi 使用ics控件如何解压网页返回的gzip数据流!
我已获取到网页返回的gzip数据,目前是用winrar解压的。不怎么稳定,程序经常报错。
在网上看到有说ICS的控件有自带的解压,想用用ICS控件解压网页返回的gzip的数据流。
我已获取到网页返回的gzip数据,目前是用winrar解压的。不怎么稳定,程序经常报错。
在网上看到有说ICS的控件有自带的解压,想用用ICS控件解压网页返回的gzip的数据流。
答案:我没用过这控件,不过我在CSDN上有见到解决方法,希望对你有帮助:
var
_DecompresData :string;
czlib : THttpCCodzlib;
procedure TMyClass.OnDecompresData(Buffer: Pointer; Count: Integer);
var
iLen: integer;
begin
iLen := length(_DecompresData);
SetLength(_DecompresData, iLen + Count);
CopyMemory(@_DecompresData[iLen + 1], Buffer, Count);
end;
使用:
if ContentEncoding = 'gzip' then
begin
_DecompresData := '';
czlib := THttpCCodzlib.Create(OnDecompresData);
Result := FHttpData.DataString;
czlib.WriteBuffer(@Result[1], Length(Result));
czlib.Complete;
Result := _DecompresData;
czlib.Free;end;
呵呵,回答者显然是在网上搜索来的答案。根本对Delphi了解不多。其实这个方法就是使用了ICS组件