--轉自http://lhdeyx.blog.163.com/blog/static/318196972011101064240339/
加載https的站點頁面內容的時候記得在窗體上加上“IdSSLIOHandlerSocketOpenSSL1”
以及idhttp裏面IOHandler爲“IdSSLIOHandlerSocketOpenSSL1”
不然老報“IOHandler value is not valid.”錯誤。
dnspod API V2.0 就是用的https 用delphi開發客戶 只需要用idhttp就可以post
在界面上放一個TIdHTTP控件,命名爲IdHTTP1,再放一個TIdSSLIOHandlerSocket控件,命名爲
IdSSLIOHandlerSocket1,將IdHTTP1的IOHandler屬性設爲IdSSLIOHandlerSocket1,這樣就可以隨
意的Get,Post那些地址爲https開頭的網站了。
不過這樣仍然不行,當運行程序時,會報錯“Could not load SSL library”,這是因爲
TIdSSLIOHandlerSocket控件需要OpenSSL Library來配合,OpenSSL Library包含有兩個動態鏈接庫
libeay32.dll和ssleay32.dll。
OpenSSL Indy版下載 http://indy.fulgan.com/SSL/
或http://download.csdn.net/detail/netcreate/3498085(經測試,delphi 2010下的indy可以用)
將這個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及之後才支持…