Indy 10 - IdHTTP.Get raising "Could not load SSL library"

18,718

If you need to access an https url, you must add some code, to complete the creation of the TidHTTP component.

Try use something like this:

// create components
HTTPs := Tidhttp.Create(nil);
IdSSL := TIdSSLIOHandlerSocket.Create(nil);
// try..finally for free
try
  // ini
  HTTPs.ReadTimeout := 30000;
  HTTPs.IOHandler := IdSSL;
  IdSSL.SSLOptions.Method := sslvTLSv1;
  IdSSL.SSLOptions.Method := sslvTLSv1;
  IdSSL.SSLOptions.Mode := sslmUnassigned;
  ...

You need to add IdSSLOpenSSL to uses clause.

Share:
18,718
Teun
Author by

Teun

Updated on June 05, 2022

Comments

  • Teun
    Teun almost 2 years

    In my application I am using IdHTTP.Get. A part of the code:

    var
      IdHTTP: TIdHTTP;
    begin
      IdHTTP := TIdHTTP.Create(nil);
      Output := IdHTTP.Get(url);
      ...
      IdHTTP.Free;
    

    Using IdHTTP.Version gives me the version: 10.6.2.5263

    I have downloaded the OpenSSL from here, both libeay32.dll and ssleay32.dll are in the same folder of my application.

    This problem occured since I am using a new laptop with Windows 10. I hope someone can tell me how to solve this problem!