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

相關文章
相關標籤/搜索