【问题标题】:How can I download a file from its download link provided on a webpage using Delphi?如何使用 Delphi 从网页上提供的下载链接下载文件?
【发布时间】:2020-03-27 21:32:29
【问题描述】:

如何使用 Delphi 从网页上提供的下载链接下载文件? 请注意,我没有使用可视组件。我正在使用 IHTMLDocument2 访问网络。

【问题讨论】:

标签: file delphi web


【解决方案1】:

我假设 IHTMLDocument2 是来自 MSHTML 库的 API,因为 AFAIK 既没有 VCL 也没有 CLX 提供这样命名的 API。

据我所知,MSHTML 没有实现通用下载 API——有时称为“HTTP 客户端”。您可能对使用 Lazarus 项目中的 fcl-web 感兴趣 - 它是一个用于开发服务器应用程序的库,但它还包含一个名为 fphttpclient 的 HTTP 客户端 API。

【讨论】:

  • 谢谢。这是我现在在我的应用程序中使用的工作代码: errcode := URLMon.URLDownloadToFile(nil, PChar('fonts.ge/ka/download/font/704/ALK-Sanet/…( 'D:\test.zip'),0,nil);
  • 看起来它可以工作,但@schneider-infosystems-ltd 的解决方案似乎是一个更好的主意。
【解决方案2】:

对于自 Delphi XE8 以来的所有现代 Delphi 版本,您可以使用单元 System.Net.HttpClient 中的 THTTPClient

Procedure SimpleDownload(const DownloadUrl: string; Stream: TStream);
var
  Client: THTTPClient;
  Response: IHTTPResponse;
begin
  Client := THTTPClient.Create;
  try
    Response := Client.Get(DownloadUrl, Stream);
    if Response.StatusCode = 200 then
      // Success case
    else 
      // Error case: Check Response.StatusText or StatusCode
  finally
    Client.Free;
  end;
end;

要下载到文件调用SimpleDownload,实例为TFileStream

【讨论】:

    猜你喜欢
    • 2012-09-10
    • 1970-01-01
    • 2013-08-22
    • 1970-01-01
    • 2020-12-09
    • 2011-08-09
    • 2013-11-27
    • 2022-01-13
    • 2020-10-17
    相关资源
    最近更新 更多