我正在尝试让 Indy 使用安装在 Ubuntu 11 上的 Lazarus 中的 SSL 和 IdHTTP 组件。我知道我的代码适用于 http 帖子,因为如果我删除 https 并将其保留为只有 http 它可以工作。所以我认为这是 SSL 和 indy 的组件缺少 Linux 库。对于windows,我习惯于只包含两个DLL,libeay32.dll
并且ssleay32.dll
效果很好。
但在 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