델파이에 들어있는 zlib는 제대로 안되는 군요 대신 Indy에 TIdCompressorZLibEx있어서 그걸로 하니 잘 되네요..
추가로 에더에서 defalte 된 놈만 압축해제 주는 내용 추가하면 그럭저럭 쓸 수 있겠네요..
procedure TForm1.Button1Click(Sender: TObject);
const
URL = ' http://bill.finance.sina.com.cn/bill/detail_js.php?stock_code=sh600690';
var
ResponseStream, InflatedStream: TStringStream;
Inflater: TIdCompressorZLibEx;
begin
ResponseStream := TStringStream.Create('');
InflatedStream := TStringStream.Create('');
Inflater := TIdCompressorZLibEx.Create(NIL);
try
ResponseStream.WriteString(IdHTTP1.Get(URL));
ResponseStream.Position := 0;
// Let's infalted
Inflater.InflateStream(ResponseStream, InflatedStream);
// Read infalted stream
Memo1.Text := InflatedStream.DataString;
finally
ResponseStream.Free;
InflatedStream.Free;
Inflater.Free;
end;
end;
구글링 생활화 합시다. "delphi indy deflate" 로 검색한 결과에 세번째로 나오는 군요.. ^^;
|