我正在尝试使用 REST。所以我使用 TIdHTTP
成分。但它说“无法加载 SSL 库”。
我缺少什么?我对 SSL 的了解为零。
我使用的是 Delphi 2007、Indy 10.1.5 和 Windows 32 位。
我输入libeay32.dll
和ssleay32.dll
在我的 EXE 目录中(我在 https://indy.fulgan.com/SSL/ 中找到了这些 DLL 文件,文件 openssl-1.0.2t-i386-win32.rar
)。
type
TForm1 = class(TForm)
IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL;
...
procedure TForm1.btn_ReqCheckServerClick(Sender: TObject);
var
s: string;
lHTTP: TIdHTTP;
const
URL_CHECK_SERVER = 'http://example'; // some URL site to ping
begin
lHTTP := TIdHTTP.Create(nil);
try
lHTTP.IOHandler:=IdSSLIOHandlerSocketOpenSSL1;
IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method:=sslvTLSv1;
lHTTP.ProtocolVersion:=pv1_1;
lHTTP.Request.ContentType := 'application/json';
lHTTP.HandleRedirects := True;
s := lHTTP.Get(URL_CHECK_SERVER);
ShowMessage(s);
finally
lHTTP.Free;
end;
end;
最佳答案
Does anybody know where the latest version of Indy can be download? At https://www.indyproject.org, many links are broken.
Indy 的 SVN 存储库即将退役。 Indy 的 GitHub 存储库位于 https://github.com/IndySockets/Indy现在是向前推进的事件存储库。 Fulgan 最近关闭了 Indy 的 SVN 和 GitHub 存储库之间的同步。
Fulgan 的夜间 zip 文件位于 https://indy.fulgan.com/ZIP/不再是 Indy 的最新开发快照(自上次 Fulgan 从 SVN 拉取其快照以来,已经对 GitHub 进行了几次 checkin )。由于用户可以从 GitHub 提取 Indy 源代码的 zip 文件,因此它变得多余了。
Indy 很快还将为其 OpenSSL lib 二进制文件创建一个新的 GitHub 存储库,这将成为 Indy 的 Fulgan 镜像棺材上的最后一颗钉子。
Indy 的网站为 https://www.indyproject.org尚未更新以反射(reflect)这一新信息。尽管在开发快照的下载部分中有一个指向 GitHub 存储库的链接。
您可以转到 GitHub 存储库并获取 /Lib
文件夹。您至少只需要 /Lib/Core
、/Lib/Protocols
和 /Lib/System
文件夹即可编译 Indy。
I'm trying to use REST. So I'm using the
TIdHTTP
component. But it is not working. It says 'Could not load SSL Library'. I already read about this error from this forum, but still it is not working.
您可以使用 Indy 的 IdSSLOpenSSLHeaders
单元中的 WhichFailedToLoad()
函数来找出 Indy 无法加载 OpenSSL 的原因。 DLL 无法加载到内存中,或者 DLL 缺少 Indy 所需的导出。
但请注意,10.1.5 是 Indy 的一个非常旧的版本,最新版本是 10.6.2。 10.1.5 很可能根本无法处理自 10.1.5 发布以来多年来对 OpenSSL 所做的更改。例如,删除对 SSLv2 和 SSLv3 的支持可能是旧版本 Indy 无法加载新版本 OpenSSL DLL 的罪魁祸首。
关于delphi - 无法加载 SSL 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59083537/