【发布时间】:2020-03-27 21:32:29
【问题描述】:
如何使用 Delphi 从网页上提供的下载链接下载文件? 请注意,我没有使用可视组件。我正在使用 IHTMLDocument2 访问网络。
【问题讨论】:
如何使用 Delphi 从网页上提供的下载链接下载文件? 请注意,我没有使用可视组件。我正在使用 IHTMLDocument2 访问网络。
【问题讨论】:
我假设 IHTMLDocument2 是来自 MSHTML 库的 API,因为 AFAIK 既没有 VCL 也没有 CLX 提供这样命名的 API。
据我所知,MSHTML 没有实现通用下载 API——有时称为“HTTP 客户端”。您可能对使用 Lazarus 项目中的 fcl-web 感兴趣 - 它是一个用于开发服务器应用程序的库,但它还包含一个名为 fphttpclient 的 HTTP 客户端 API。
【讨论】:
对于自 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。
【讨论】: