-2

I am trying to connect call an https:// service from an Android application. I am getting the error that the IOHandler value is not valid. After scouring the forums I found that I need to create a TIDSSLIOHandlerOpenSSL object and assign a value to this. I am very new to the SSL protocols and need some help on how to import the TIdSSLIOHandlerSocketOpenSSL library into Delphi. I have the libeay32.dll and ssleay32.dll in the application folder. Do I need to register them? Once that is done, how would I then make the component visibile in Delphi XE7?

Thanking you in advance.

RRUZ
  • 134,889
  • 20
  • 356
  • 483

1 Answers1

1

I am getting the error that the IOHandler value is not valid.

You must not be using an up-to-date version of Indy, because new code was added a year ago to help users deal with that error:

New HTTPS functionality for TIdHTTP

After scouring the forums I found that I need to create a TIDSSLIOHandlerOpenSSL object and assign a value to this.

You need to create a TIdSSLIOHandlerSocketOpenSSL object and assign it to the TIdHTTP.IOHandler property, and then configure the IOHandler with whatever encryption settings you need (SSL/TLS version(s), certificates, etc).

I am very new to the SSL protocols and need some help on how to import the TIdSSLIOHandlerSocketOpenSSL library into Delphi.

There is nothing to import. The TIdSSLIOHandlerSocketOpenSSL component is part of Indy, same as the TIdHTTP component. They are both available in Indy's pages of the IDE's Component Palette and Tool Palette, so you can drop them on a Form/Frame/DataModule at design-time, or you can create them programmably in code at runtime, your choice.

I have the libeay32.dll and ssleay32.dll in the application folder. Do I need to register them?

No. TIdSSLIOHandlerSocketOpenSSL loads them dynamically at runtime, using the OS search path by default to find them. The OS looks in the application folder first. If you need to store them somewhere else, you can call Indy's IdOpenSSLSetLibPath() function at runtime to tell Indy where they are located.

Once that is done, how would I then make the component visibile in Delphi XE7?

The same way you do any other component. If you have Indy installed, you already have the TIdHTTP and TIdSSLIOHandlerSocketOpenSSL components available. Indy is available for both VCL and FireMonkey projects.

Remy Lebeau
  • 555,201
  • 31
  • 458
  • 770