尝试检测添加到Web服务器的最新文件的名称的正确方法是什么?我正在尝试使用Indy HTTPS下载文件。文件名是动态生成的,因此我首先需要确定服务器上存在的最新文件的名称是什么。
我使用以下代码从网络服务器下载文件:
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命令可检索文件列表。
某些特定的服务器安装可能会返回给定路径/目录URL的文件列表,但是随后您需要以编程方式解析HTTP响应。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句