Delphi Indy HTTPS 检测来自网络服务器的最新文件
Delphi Indy HTTPS detect the newest file from a web server
尝试检测添加到 Web 服务器的最新文件的名称的正确方法是什么?我正在尝试使用 Indy 下载文件 HTTPS.The 文件名是动态生成的,因此我首先需要确定服务器上存在的最新文件的名称。
我使用以下代码从网络服务器下载文件:
function getIndyFile_from_https(const fileURL, FileName: String): boolean;
var http:TIdHttp;
s:TFileStream;
i:integer;
FProgress: Integer;
FBytesToTransfer: Int64;
FOnChange: TNotifyEvent;
IOHndl: TIdSSLIOHandlerSocketOpenSSL;
protocol_url,fullurl,url_fara_protocol,host:string;
begin
http:=TIdHTTP.Create(nil);
IOHndl := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
http.Request.BasicAuthentication := True;
//Request.Accept:='text/html,*/*';
//Request.AcceptEncoding:='utf-8';
http.HandleRedirects := True;
http.IOHandler := IOHndl;
http.ReadTimeout := 30000;
//http.OnWork := HTTPWork;
//http.OnWorkBegin := HTTPWorkBegin;
//http.OnWorkEnd := HTTPWorkEnd;
try
s:=TFileStream.Create(filename, fmcreate);
try
http.Get(fileUrl,s);
result:=true;
finally
s.free;
end;
finally
http.Free;
end;
end;
没有检索文件列表的标准 HTTP 命令。
一些特定的服务器安装可能 return 给定路径/目录 URL 的文件列表,但是您需要以编程方式解析 HTTP 响应。
您需要服务器端逻辑来处理这个问题。为了响应您的客户端可以请求的给定静态 URL,服务器需要:
跟踪最新文件和 return 文件名,如果不是文件本身的话。
提供描述所有可用文件及其时间戳的目录列表。然后您可以解析列表并请求最新文件。
尝试检测添加到 Web 服务器的最新文件的名称的正确方法是什么?我正在尝试使用 Indy 下载文件 HTTPS.The 文件名是动态生成的,因此我首先需要确定服务器上存在的最新文件的名称。
我使用以下代码从网络服务器下载文件:
function getIndyFile_from_https(const fileURL, FileName: String): boolean;
var http:TIdHttp;
s:TFileStream;
i:integer;
FProgress: Integer;
FBytesToTransfer: Int64;
FOnChange: TNotifyEvent;
IOHndl: TIdSSLIOHandlerSocketOpenSSL;
protocol_url,fullurl,url_fara_protocol,host:string;
begin
http:=TIdHTTP.Create(nil);
IOHndl := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
http.Request.BasicAuthentication := True;
//Request.Accept:='text/html,*/*';
//Request.AcceptEncoding:='utf-8';
http.HandleRedirects := True;
http.IOHandler := IOHndl;
http.ReadTimeout := 30000;
//http.OnWork := HTTPWork;
//http.OnWorkBegin := HTTPWorkBegin;
//http.OnWorkEnd := HTTPWorkEnd;
try
s:=TFileStream.Create(filename, fmcreate);
try
http.Get(fileUrl,s);
result:=true;
finally
s.free;
end;
finally
http.Free;
end;
end;
没有检索文件列表的标准 HTTP 命令。
一些特定的服务器安装可能 return 给定路径/目录 URL 的文件列表,但是您需要以编程方式解析 HTTP 响应。
您需要服务器端逻辑来处理这个问题。为了响应您的客户端可以请求的给定静态 URL,服务器需要:
跟踪最新文件和 return 文件名,如果不是文件本身的话。
提供描述所有可用文件及其时间戳的目录列表。然后您可以解析列表并请求最新文件。