我想让Indy使用SSL和安装在Ubuntu 11上的Lazarus中的IdHTTP组件。我知道我的代码适用于http post,因为如果我删除https并将其保留为仅http它的作品。所以我认为这是SSL和缺少Linux库的indy组件。对于窗口的我用来包括两个DLL,libeay32.dll
和ssleay32.dll
,它工作得很好。Lazarus Indy SSL IdHTTP
但在Linux中似乎是另一回事。我唯一的代码是邮政编码:
IdHttp1.Post('url', StringList, ReturnStreamList);
就像我说这没有HTTPS的伟大工程,但是当我尝试SSL没有任何反应都没有。没有错误,因为我有try
和except
赶上,但我没有做任何捕捉。
我有安装了OpenSSL,我也有以下通过apt
安装:
libcrypto++8
libcrypto++-dev
libssl-dev
libssl0.9.8
我去/usr/lib
和两个文件libcrypto.so
和libssl.so
在那里。
有什么想法让SSL与Lazarus和Indy一起工作来处理IdHTTP后操作?
编辑:好的,下面的意见后,下面我已经加入了异常:
on E: EIdHTTPProtocolException do
showmessage(htp1.ResponseText);
这给我的错误Error creating SSL context
。
EDIT2:我跑了strace的,我已经贴在输出方面它开放的SSL库的位置: http://pastebin.com/fL6tTSGg
如果您收到没有错误,因为你把自己的异常,**停止扔掉异常**,所以你知道在哪里可以找到这个问题。无论如何,这似乎是一个非常合乎逻辑的开始为我解决问题。 :-) –
是的你的权利,但我已经在谷歌上花了一个小时,并没有发现在拉伊为indy抓住例外。所以我不能显示它,如果我不知道显示什么。 – jfreak53