DELPHI IDHTTP下载带清理网络缓存


本文整理自网络,侵删。

 type
  THttpThread = class(TThread)
  private
    FIdHTTP: TIdHTTP;
    FUrl: string;
    FSavePath: string;
    procedure Down(Url: string; SavePath: string);
  public
    constructor Create(CreateSuspended: Boolean; Url: string; SavePath: string);
    destructor Destroy; override;
    procedure Execute; override;
  end;


{ THttpThread }

constructor THttpThread.create(CreateSuspended: Boolean; Url: string; SavePath: string);
begin
  inherited Create(CreateSuspended);
  FreeOnTerminate := True;
  FUrl := Url;
  FSavePath := SavePath;
  FIdHTTP := TIdHTTP.Create(nil);
end;

destructor THttpThread.Destroy;
begin
  FIdHTTP .Free;
  inherited;
end;

procedure THttpThread.Down(Url: string; SavePath: string);
var
  Stream: TMemoryStream;
begin
  BegTime := GetTickCount;
  Stream := TMemoryStream.Create;
  try
    try
      FIdHTTP.Get(Url, Stream);
    finally
      DeleteUrlCacheEntry(PChar(Url));
    end;
  except
    MessageBox(0, '网络出错', '提示', MB_ICONQUESTION);
    Stream.Free;
    Exit;
  end;

  Stream.SaveToFile(SavePath);
  Stream.Free;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  HttpThread1: THttpThread;
  UrlPath: string;
begin
  UrlPath := 'http://www.3464.com/Images/TopLogo.gif';
  HttpThread1 := THttpThread.Create(False, UrlPath, 'C:\Test\1.Rar');
end;

procedure THttpThread.Execute;
begin
  inherited;
  Down(FUrl, FSavePath);
end;

相关阅读 >>

Delphi blockread和blockwrite读写文件

Delphi arp攻击代码

Delphi scrollbox1滚动框鼠标滚轮

Delphi使用xmlhttp获取时间

Delphi with do和for do语句

Delphi 修改webbrowser的内容

Delphi tdirectory.tfilterpredicate

Delphi xe5 给edit增加自定义按钮

Delphi ip编辑控件

Delphi 关于动态数组指针操作的两个例子

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...