delphi - 如何在 Delphi 中使用 Indy 10 和 OpenSSL 通过 HTTPS 下载/上传文件?

标签 delphi ssl https sftp indy10

我希望使用 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 上传文件

关于delphi - 如何在 Delphi 中使用 Indy 10 和 OpenSSL 通过 HTTPS 下载/上传文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36710606/

相关文章:

delphi - 如何在普通应用程序和 UAC 提升权限应用程序之间启用拖放

delphi - 它是否违反了接口(interface)属性访问器公开的封装?

c++ - Poco + OpenSSL + CA PEM : "Unacceptable certificate" error for 1 out of 2 identical sites

ssl - IIS 7.5 SSL https - 调用其他站点时出现错误站点

r - mailR 错误 - 向以下服务器发送电子邮件失败 : smtp. gmail.com:587 - ShinyProxy/Docker/Ubuntu

ssl - 使用带有 ssl 的 nginx 时如何修复 PR_END_OF_FILE_ERROR?

arrays - 引用类(class)流程

delphi - Delphi中数组的幂集

python - 如何运行 django sslserver(https) 使得网络中的远程系统也可以访问?

loops - Tomcat 无限重定向循环