【发布时间】:2011-07-14 08:03:56
【问题描述】:
我使用 TidHTTP + TIdSSLIOHandlerSocketOpenSSL + 2 个 DLL:来自http://indy.fulgan.com/SSL 的 ssleay32.dll 和 libeay32.dll。
但是我可以在 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;
begin
try
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
屏幕截图:
感谢感谢感谢您的帮助!!!
【问题讨论】:
-
-1。如果您无法通过 Internet Explorer 或 Opera 看到下载,那么问题显然不在于您的应用程序。你找错树了。去找出服务器出了什么问题。
-
esta.cbp.dhs.gov/esta 在这里工作 - 那么
If I use IE, Opera I can not see downloading with the same site对您来说是什么意思?你检查过你的代理/防火墙设置吗? -
我错过了问题的那一部分。我可以毫无问题地访问该网站。
-
Rob Kennedy,请尝试使用 Opera 使用 HTTPS 访问 10 个网站(Http 分析器可以看到 IE)->HTTP 分析器中不会有流量。然后在你的程序中尝试这些网站 -> 会有流量。