【发布时间】:2016-12-28 15:50:17
【问题描述】:
尝试检测添加到 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;
【问题讨论】: