IDHTTP-HTTPS通信方法(Indy10.2.3以前仅支持OpenSSL的0.9.8之前的版本)

加载https的站点页面内容的时候记得在窗体上加上“IdSSLIOHandlerSocketOpenSSL1”html

以及idhttp里面IOHandler为“IdSSLIOHandlerSocketOpenSSL1”工具

否则老报“IOHandler value is not valid.”错误。post


dnspod API V2.0 就是用的https 用delphi开发客户 只须要用idhttp就能够post测试

在界面上放一个TIdHTTP控件,命名为IdHTTP1,再放一个TIdSSLIOHandlerSocket控件,命名为网站

IdSSLIOHandlerSocket1,将IdHTTP1的IOHandler属性设为IdSSLIOHandlerSocket1,这样就能够随.net

意的Get,Post那些地址为https开头的网站了。
不过这样仍然不行,当运行程序时,会报错“Could not load SSL library”,这是由于htm

TIdSSLIOHandlerSocket控件须要OpenSSL Library来配合,OpenSSL Library包含有两个动态连接库blog

libeay32.dll和ssleay32.dll。
OpenSSL Indy版下载 http://indy.fulgan.com/SSL/dns

或http://download.csdn.net/detail/netcreate/3498085(经测试,delphi 2010下的indy能够用)ssl


将这个rar解包释放两个dll到你的程序目录便可,可是我这样作完之后post数据仍是不行,发现

idhttp这里有个版本的选项Method,默认的是sslvSSLv2,改成sslvSSLv3,post返回数据正常,

yeah~仔细看了看,这个属性是IdSSLIOHandlerSocket1的。

写一个登陆HTTPS协议网站的工具,想用INDY实现 
如今总是会报错“Could not load SSL library”,但是我已经把ssleay32.dll和libeay32.dll两个

库文件拷进去了,是否是要专门支持D7的库文件才能够.

有相似的代码也能够提供参考一下,很是感谢!

是的,在Indy10.0.5以前的版本所使用的OpenSSL是Indy特别的版本 
Indy10.2.3以前仅支持OpenSSL的0.9.8之前的版本 
Indy10.2.3及以后才支持…

 

http://blog.sina.com.cn/s/blog_722bc92e0101i7g5.html

相关文章
相关标签/搜索