我希望使用 Indy 下载文件。我的问题连接到 SSL。请帮助我使用 HTTPS 或 SFTP 执行此操作。
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
IdFTP1.IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(IdFTP1);
IdFTP1.UseTLS:=utUseRequireTLS;
IdFTP1.DataPortProtection:=ftpdpsPrivate;
IdFTP1.Host := '127.0.0.1';
IdFTP1.Username := 'ftp';
IdFTP1.Password := '123';
IdFTP1.Port:=21;
IdSSLIOHandlerSocketOpenSSL1.StartSSL;
try
IdFTP1.Connect;
IdFTP1.Disconnect;
finally
IdFTP1.Free;
end;
end;
您做对了(除了您释放了不是在同一代码中创建的组件这一事实)。 HTTPS 也是如此。
IdHTTP1.IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create();
IdHTTP1.Get('https://...');
请注意,您需要 OpenSSL 库 https://indy.fulgan.com/ZIP/SSL.zip或者你想要的任何版本 https://indy.fulgan.com/SSL/
SFTP 和 FTPS 也有区别。Indy 的 IdFTP 支持 SSL (FTPS)。它不能与 SFTP(使用 SSH 的 FTP)一起使用。如果你想使用 SFTP,你必须使用替代的商业组件 https://www.eldos.com/sbb/delphi-sftp.php
如果显示一个错误,您应该指定任何错误。可能只是缺少 SSL 库。如果您不知道如何下载/上传文件,这里有一些方法
IdFTP1.Put (upload)
IdFTP1.Get (download)
IdHTTP1.Put/Post (upload)
IdHTTP1.Get (download)
您需要来自“IdMultipartFormData”单元的 TIdMultiPartFormDataStream 用于 HTTP Post 上传文件
我是一名优秀的程序员,十分优秀!