4

我执行此代码并得到错误:无法加载 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;
4

1 回答 1

7

单元中的IndyWhichFailedToLoad()函数IdSSLOpenSSLHeaders会告诉您为什么无法加载 OpenSSL。要么没有安装 OpenSSL DLL,要么安装了不兼容的 DLL 版本,缺少 Indy 正在寻找的功能。试试 Indy's Fulgan mirror上提供的 DLL 。

于 2012-09-07T08:49:12.070 回答