IDHTTP 版本 10.5.5,配合 IdSSLIOHandlerSocketOpenSSL 无法 GET ,错误提示 SOCKET ERROR # 0libeay32.dll ssleay32.dll 版本 0.98l ,使用 0.96版本,提示是 could not load SSL library,看来只能用0.98l版本,但却报错,源代码:memo.lines.text := idhttp.get( 'https://www.fetion.com.cn/account/registermail/' );于是换成 ics 的 icshttp 版本 v7,usesOverbyteIcsHttpProt, OverbyteIcsWSocket, OverbyteIcsLIBEAY, OverbyteIcsSsLeay,
{$IFDEF USE_MODEZ}              { V2.102 }
  OverbyteIcsHttpCCodZLib,
{$ENDIF}
  OverbyteIcsWndControl;
此时可以正常使用,或者应该说在本机测试正常,只要将 libeay32.dll ssleay32.dll (版本 OpenSSL 0.9.8h 28 May 2008),放置到程序所在文件夹即可正常使用,但是发送到其他的机器上后,使用 GET 命令时 却总是提示 !EIcsLibeayException: Unable to load LIBEAY32.DLL. Error #0请问各位这2个问题是什么原因?

解决方案 »

  1.   

    我使用indy9+这2个dll没问题:
    2002-08-13  06:09           334,336 libeay32.dll
    2002-08-13  06:10            87,552 ssleay32.dll
      

  2.   

    听说INDY9的稳定性不及INDY10,所以暂时还不考虑用INDY9
      

  3.   

    INDY9的确正常,INDY10应该也可以了,添加代码:procedure TForm1.FormCreate(Sender: TObject);
    begin
         IdSSLOpenSSL.LoadOpenSSLLibrary;
    end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
         IdSSLOpenSSL.UnLoadOpenSSLLibrary;
    end;就可以使用了,ICS 还不清楚怎么搞定,希望高手能指教指教。
      

  4.   

    ICS是缺少动态库,你把LIBEAY32.DLL添加到你的程序目录应该就可以了。