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.