我试图使用get请求连接到此URL:政府页面,但始终收到EIdOSSLConnectError "Error connecting with SSL"的错误提示。我的代码如下,它可以在其他页面正常运行,但在这个页面上无法正常工作。
IdHTTP1.HandleRedirects := true;
IdHTTP1.AllowCookies := true;
IdHTTP1.IOHandler := TIdSSLIOHandlerSocket.Create(IdHTTP1);
IdHTTP1.CookieManager := TIdCookieManager.Create(IdHTTP1);
with TIdSSLIOHandlerSocket(IdHTTP1.IOHandler) do begin
SSLOptions.Method := sslvTLSv1;
SSLOptions.Mode := sslmUnassigned;
SSLOptions.VerifyMode := [];
SSLOptions.VerifyDepth := 0;
PassThrough := True;
end;
IdHttp1.Request.UserAgent := 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:52.0) Gecko/20100101 Firefox/52.0';
IdHTTP1.RedirectMaximum := 30;
sHtml := IdHTTP1.Get('https://loginc.mat.sat.gob.mx/nidp/app/login?id=XACCertiSAT&sid=0&option=credential&sid=0');//<----Error here
Delphi 7,Indy 9.00.10
感谢任何建议。
RedirectMaximum
值似乎期望在整个宇宙范围内进行重定向(42 是宇宙能接受的最大值 :) - VictoriaSSLOptions.Method := sslvTLSv1;
更改为SSLOptions.Method := sslvSSLv23;
并且使用openssl dll openssl-1.0.2-i386-win32.zip,openssl-1.0.2-x64_86-win64.zip也不起作用。Victoria,我使用了30个重定向,因为我不知道会重定向多少次:p。离题了,Remy,您是否安装了带有indy 10的reportmanager 2_7?谢谢大家。 - crono81SSLOptions.Method
属性(它已被弃用,所以假装它不存在),请改用SSLOptions.SSLVersions
属性。如果您启用了多个版本(例如[sslvTLSv1,sslvTLSv1_1,sslvTLSv1_2]
),则Method
将自动设置为sslvSSLv23
(但这是一个实现细节)。将Method
设置为sslvSSLv23
与将SSLVersions
设置为[sslvSSLv2,sslvSSLv3,sslvTLSv1,sslvTLSv1_1,sslvTLSv1_2]
相同。 - Remy Lebeau