解决方法
我已经编写了这个例子,只用一个HTTP GET,与Indy 10,希望它与Indy 9一起工作:
uses {...} IdHTTP,IdComponent; type TFormMain = class(TForm) {...} private {...} procedure HttpWork(ASender: TObject; AWorkMode: TWorkMode; AWorkCount: Int64); end; {...} procedure TFormMain.Button1Click(Sender: TObject); var Http: TIdHTTP; MS: TMemoryStream; begin Http := TIdHTTP.Create(nil); try MS := TMemoryStream.Create; try Http.OnWork:= HttpWork; Http.Get('http://live.sysinternals.com/ADExplorer.exe',MS); MS.SavetoFile('C:\ADExplorer.exe'); finally MS.Free; end; finally Http.Free; end; end; procedure TFormMain.HttpWork(ASender: TObject; AWorkMode: TWorkMode; AWorkCount: Int64); var Http: TIdHTTP; ContentLength: Int64; Percent: Integer; begin Http := TIdHTTP(ASender); ContentLength := Http.Response.ContentLength; if (Pos('chunked',LowerCase(Http.Response.TransferEncoding)) = 0) and (ContentLength > 0) then begin Percent := 100*AWorkCount div ContentLength; MemoOutput.Lines.Add(IntToStr(Percent)); end; end;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。