4

このコードを実行すると、次のエラーが表示されます: SSL ライブラリ クラスをロードできませんでした: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

ユニット内のIndy のWhichFailedToLoad()関数は、IdSSLOpenSSLHeadersOpenSSL をロードできなかった理由を教えてくれます。OpenSSL DLL がインストールされていないか、互換性のないバージョンの DLL がインストールされているため、Indy が探している機能がありません。Indy's Fulgan mirrorで入手できる DLL を試してください。

于 2012-09-07T08:49:12.070 に答える