Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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!

like image 885
Teun Avatar asked Feb 09 '16 11:02

Teun


1 Answers

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.

like image 194
Germán Estévez -Neftalí- Avatar answered Nov 05 '22 06:11

Germán Estévez -Neftalí-