TIdHTTP+TIdSSLIOHandlerSocket+SSL

wang1ss 2008-09-25 03:04:15
利用HIDHTTP和TIdSSLIOHandlerSocket 访问https网站时,抛出异常error connecting with ssl。但是同一链接在IE浏览器里面没有问题。为什么?
Var
url : String;
Str : String;
Response: TStringStream;
PostData: String;
begin
url := 'https://'+vIP+':'+IntToStr(vPort)+'/'+vServlet;
Response := TStringStream.Create(PostData);

try
IdHTTP.Request.ContentType:='text/html; charset=GBK';
Str := IdHTTP.Post(url,Response);
finally
Application.MessageBox(PChar(Str),'提示');
Response.Free;
end;
end;
...全文
736 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
kye_jufei 2010-08-13
  • 打赏
  • 举报
回复
記住了:
TIdSSLIOHandlerSocket的属性SSLOptions下的method设置为sslvSSLv23(可解決ssl连接错误)。。。

wang1ss 2008-09-26
  • 打赏
  • 举报
回复
解决了 是TIdSSLIOHandlerSocket的属性SSLOptions下的method设置为sslvSSLv23 即可。
谢谢各位
fangsp 2008-09-26
  • 打赏
  • 举报
回复
再顶上一个
僵哥 2008-09-26
  • 打赏
  • 举报
回复
1.是否有配置正确版本的SSL动态库,这一点比较重要,即使是Indy10也会有存在SSL动态库版本兼容问题.早期版本,Indy需要在SSL动态库当中增加几个自定义的函数才能使用.Indy10之后有所改善,大概是OpenSSLv9.8(大概是这个版本)之后对一些导出函数有做修改,从而又存在不同的版本.个人建议还是使用最新的Indy10.2.3+OpenSSLv9.8I.

2.SSL库是否对服务器的需要的SSL版本提供支持(正常情况下通过协商,一般是SSLv23/SSLV3/TLS).

3.服务器是否要求客户端必要使用证书,如果需要的话,就看看IE浏览器当中是否已经有导入证书,有可以导出来,不过比较麻烦的是可能无法备份私钥.
wang1ss 2008-09-26
  • 打赏
  • 举报
回复
帮忙啊
fangsp 2008-09-25
  • 打赏
  • 举报
回复
看代码
似乎没觉得有问题

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧