Delphi 2010 - 无法加载SSL lib

Cla*_*ion 4 delphi ssl indy

我执行此代码并获得错误:无法加载SSL lib类: EIdOSSLCouldNotLoadSSLLibrary

我不使用.net.

var
  Client: TIdHTTP;
  tokenURL: String;
begin
  client := TIdHTTP.Create(nil);
  try
    client.IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(client);
    TIdSSLIOHandlerSocketOpenSSL(client.IOHandler).SSLOptions.Method := sslvSSLv23;

    client.HandleRedirects := False; 
    client.Get('https://www.xxxxx.xx/portal/ILlogin?username=XXXXXX&password=XXXXXXXX&skin=yyyyyyyyyy&portal=GG', [300, 301, 302, 303, 305, 306, 307]);

    if client.Response.Location <> '' then
      tokenURL := client.Response.Location;
  finally
    client.Free;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

Rem*_*eau 7

Indy WhichFailedToLoad()在该IdSSLOpenSSLHeaders单元中的功能将告诉您无法加载OpenSSL的原因.要么您没有安装OpenSSL DLL,要么安装了不兼容的DLL版本,而这些版本缺少Indy正在寻找的功能.试试Indy的Fulgan镜子提供的DLL .

  • 在当前的Indy 10版本中,您可以通过调用`IdSSLOpenSSLHeaders`单元中的`IdOpenSSLSetLibPath()`函数来指定OpenSSL DLL所在的文件夹来避免该问题. (2认同)