zoukankan      html  css  js  c++  java
  • Delphi使用通过WinHTTP下载的文件保存到磁盘

    相关资料:

    https://www.jb51.cc/delphi/103143.html   使用Delphi XE将通过WinHTTP下载的文件保存到磁盘

    https://www.cnblogs.com/huangjacky/archive/2009/12/30/1635830.html   Delphi - 我的代码之简单封装WinHttpRequest

    实例:下面这代码是我下载ZIP包时用到的,亲证可用。

    {$APPTYPE CONSOLE}
     
    uses
      Variants,ActiveX,Classes,AxCtrls,WinHttp_TLB,SysUtils;
     
     
    function Download(const url,filename: String): Boolean;
    var
       http: IWinHttpRequest;
       wUrl: WideString;
       fs:TFileStream;
       HttpStream :IStream;
       sz,wr:Int64;
       FStatus : Integer;
       OleStream: TOleStream;
    begin
      try
       wUrl := url;
       http := CoWinHttpRequest.Create;
       http.open('GET',False);
       http.send(EmptyParam);
     
       FStatus := http.status; // 200=OK!
       result := FStatus=200;
     
       if result then
       begin
        HttpStream:=IUnknown(http.ResponseStream) as IStream;
        OleStream:= TOleStream.Create(HttpStream);
        try
          fs:= TFileStream.Create(FileName,fmCreate);
          try
            OleStream.Position:= 0;
            fs.CopyFrom(OleStream,OleStream.Size);
          finally
            fs.Free;
          end;
        finally
          OleStream.Free;
        end;
       end;
     
      except
          result := false;
          // do not raise exceptions.
      end;
    end;
     
     
    begin
      try
        Download('http://foo.html','C:Fooanyfile.foo');
      except
        on E: Exception do
          Writeln(E.ClassName,': ',E.Message);
      end;
    end.
    

      

    作者:疯狂Delphi
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.

    欢迎关注我,一起进步!扫描下方二维码即可加我

  • 相关阅读:
    作业2 身份认证(正心13)
    ubuntu16内核升级过程遇到的问题
    「」
    「loj
    「一个经典问题的另一个推导方法」
    「loj
    「XXI Opencup GP of Tokyo」 Count Min Ratio
    「codeforces
    「codeforces
    「Dominator Tree」
  • 原文地址:https://www.cnblogs.com/FKdelphi/p/14991261.html
Copyright © 2011-2022 走看看