首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lazarus Indy SSL IdHTTP

Lazarus Indy SSL IdHTTP
EN

Stack Overflow用户
提问于 2012-11-20 07:37:54
回答 1查看 2.6K关注 0票数 0

我正在尝试让Indy使用安装在Ubuntu11上的SSL和Lazarus中的IdHTTP组件。我知道我的代码对于http post是正确的,因为如果我删除https,只留下http,它就可以工作了。所以我认为是SSL和indy的组件缺少Linux库。对于window,我习惯于只包含两个动态链接库,libeay32.dllssleay32.dll,它工作得很好。

但在linux中,这似乎是另一回事。我唯一的代码是post代码:

代码语言:javascript
复制
IdHttp1.Post('url', StringList, ReturnStreamList);

就像我说的,它在没有https的情况下工作得很好,但当我尝试SSL时,什么也没有发生。没有错误,因为我有tryexcept要捕捉,但我没有做任何捕捉的事情。

我确实安装了OpenSSL,我还通过apt安装了以下软件

代码语言:javascript
复制
libcrypto++8
libcrypto++-dev
libssl-dev
libssl0.9.8

我去了/usr/lib,文件libcrypto.solibssl.so都在那里。

你知道要让SSL在IdHTTP post操作中与拉撒路和印地一起工作需要做些什么吗?

编辑:好的,在遵循下面的建议之后,我添加了例外:

代码语言:javascript
复制
on E: EIdHTTPProtocolException do
       showmessage(htp1.ResponseText);

这给出了错误Error creating SSL context

EDIT2:我运行了一个strace,并粘贴了输出区域,其中打开了SSL库:http://pastebin.com/fL6tTSGg

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-20 21:44:40

这太容易了,我都烦死了!哈哈

似乎我对SSL使用了错误的方法。我必须将TidSSLioHandlerSocketOpenSSL.SSLOptions.Method设置为sslvSSLv23,它在sslvSSLv2上。

现在一切都正常了:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13464361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档