繁体   English   中英

Delphi 2007 和 Indy 10 使用 https 和 SSL

[英]Delphi 2007 and Indy 10 using https and SSL

我删除了 TIdHTTP 和 TIdSSLIOHandlerSocketOpenSSL,将 IdHTTP 的 IOHandler 设置为 SSL 处理程序,将 TIdSSLIOHandlerSocketOpenSSL 的模式设置为 sllmClient。 然后在下面添加了按钮点击事件。 我第一次从 whichFailedToLoad 得到这个错误。

在此处输入图片说明

显示,我第二次按下按钮它起作用了。 ssl dll 位于 .exe 目录中。

该服务在浏览器中运行良好,并且正在生产中。 为什么第一次不行?

procedure TForm32.Button1Click(Sender: TObject);
var
  output : TMemoryStream;
begin
    output:=TMemoryStream.Create;
//    IdOpenSSLSetLibPath(
  try
    IdHTTP1.get('https://localhost:444/Folder/service.svc',output);
    output.position := 0;
    memo1.lines.LoadFromStream(output);
  except
    on exception do
    ShowMessage(WhichFailedToLoad());
  end;
end;

蒂亚

您应该更新到最新版本的 Indyssl dll ,这应该完全消除异常。

您必须使用 Indy 10 的非常旧和过时的版本 - 该消息框中报告的大多数函数都带有_Indy后缀。

Indy 9 及更早版本以及早期的 Indy 10 版本需要定制的 OpenSSL DLL,这些 DLL 添加了 Indy 特定的函数来访问尚未在公共 OpenSSL API 中公开的内部 OpenSSL 数据。 一旦这些数据在以后的 API 版本中公开,Indy 10 就会更新为不再需要自定义构建的 DLL。 它现在按原样使用标准化的 OpenSSL DLL。

因此,您要么需要追踪旧的定制 Indy OpenSSL DLL,要么需要升级到最新的 Indy 10 版本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM