
但我可以在http Analyzer中看到我的程序的所有工作!它可以用作http,而不是httpS.如果我使用Opera,我看不到使用同一站点下载(https://esta.cbp.dhs.gov/esta).
我没有为TIDhttp和TIDSSliOHandlerSocketopenSSL设置任何特殊参数(可能是我必须但我不知道到底是什么).
我必须使用TIDSSLVersion(sslvSSLv23)SSL证书的位置吗?我在哪里可以获得此证书?还是只有RootCertfile?
如何将IDhttp的端口更改为443(我必须这样做吗?)?
我用:
procedure TForm1.FormCreate(Sender: TObject);var mem:tmemorystream;begintry mem:=TMemoryStream.Create(); try IDhttp1.Get('https://esta.cbp.dhs.gov/esta/',Mem); except on E : Exception do ShowMessage(E.Message); end;finally mem.Free; IDhttp1.Free;end;end; 请看我的视频:http://liga-installer.realservers.info/ssl.mp4
截屏:
谢谢谢谢你的帮助!
解决方法 这个简单的示例适用于Delphi XE开箱即用,因此您无需在客户端更改端口或使用证书.它基于 an example from RosettaCode:Uses IDhttp,IDSSLOpenSSL
…
procedure TForm2.button1Click(Sender: TObject);var s: string; lhttp: TIDhttp;begin lhttp := TIDhttp.Create(nil); try lhttp.IOHandler := TIDSSliOHandlerSocketopenSSL.Create(lhttp); lhttp.HandleRedirects := True; s := lhttp.Get('https://esta.cbp.dhs.gov/esta/'); RichEdit1.Text := s; finally lhttp.Free; end;end; 问题可能是您需要部署的DLL的版本.由于最近的版本修复了安全问题,我建议将您的Indy版本升级到最新版本并使用fulgan网站上最新的OpenSSL库.
更新:您是说您无法使用网络浏览器查看网站,或者当您这样做时无法在http分析器中看到流量?正如Rob提到的,如果使用常规Web浏览器看不到该站点,那么问题可能不是您的应用程序.
总结以上是内存溢出为你收集整理的Delphi:IdHTTP SSL不起作用.没错!全部内容,希望文章能够帮你解决Delphi:IdHTTP SSL不起作用.没错!所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)