我正在尝试从Android应用程序连接呼叫https://服务。我收到IOHandler值无效的错误。在搜索论坛后,我发现我需要创建一个TIDSSLIOHandlerOpenSSL对象并为此赋值。我是SSL协议的新手,需要一些关于如何将TIdSSLIOHandlerSocketOpenSSL库导入Delphi的帮助。我有libeay32.dll和 应用程序文件夹中的ssleay32.dll。我需要注册吗?一旦完成,我将如何在Delphi XE7中使组件可见?
提前感谢你。
答案 0 :(得分:0)
我收到IOHandler值无效的错误。
您不能使用Indy的最新版本,因为一年前添加了新代码以帮助用户处理该错误:
New HTTPS functionality for TIdHTTP
在搜索论坛后,我发现我需要创建一个TIDSSLIOHandlerOpenSSL对象并为其赋值。
您需要创建一个TIdSSLIOHandlerSocketOpenSSL
对象并将其分配给TIdHTTP.IOHandler
属性,然后使用您需要的任何加密设置(SSL / TLS版本)配置IOHandler
,证书等。)
我是SSL协议的新手,需要一些关于如何将TIdSSLIOHandlerSocketOpenSSL库导入Delphi的帮助。
无需导入任何内容。 TIdSSLIOHandlerSocketOpenSSL
组件是Indy的一部分,与TIdHTTP
组件相同。它们都可以在IDE的Component Palette和Tool Palette的Indy页面中找到,因此您可以在设计时将它们放在Form / Frame / DataModule上,或者您可以在运行时以可编程方式在代码中创建它们。
我在应用程序文件夹中有libeay32.dll和ssleay32.dll。我需要注册吗?
没有。 TIdSSLIOHandlerSocketOpenSSL
在运行时动态加载它们,默认情况下使用OS搜索路径查找它们。操作系统首先查看应用程序文件夹。如果你需要将它们存储在其他地方,你可以在运行时调用Indy的IdOpenSSLSetLibPath()
函数来告诉Indy它们的位置。
一旦完成,我将如何在Delphi XE7中使组件可见?
与执行任何其他组件的方式相同。如果您安装了Indy,则您已拥有TIdHTTP
和TIdSSLIOHandlerSocketOpenSSL
组件。 Indy适用于VCL和FireMonkey项目。