又到了这个问题的时候了,但这次是 Delphi XE2。
我正在使用 XE2 附带的 Indy 版本 10.5.8.0,并且我尝试了四种不同版本的 SSL dll。我尝试了最新的 1.0.x,以及大约 3 个不同的 0.9.8 版本(e、h、x、....)。
在与 calendar.google.com 上的 https:// url 通信时,它们都不起作用。“ Sync-components.com ”上的 Delphi Google Calendar 组件的作者提供了他自己的二进制 openssl DLL 运行时,其中没有版本信息,但它似乎是一个非常小的、非常旧的 SSL 库版本,早于 0.9。 8. 该组件的作者说只有他的私有未版本化 DLL 可以工作。我不敢相信。当然,至少有一个版本的 openSSL dll 可以与 Delphi XE2 很好地连接到 Google 日历。
为了让他自定义的古老 DLL 在 Delphi XE2 中加载到 Indy 10 中,他在最后修改了 IdSSLOpenHeaders.pas 方法 Load,如下所示:
function Load: Boolean;
begin
/// ... lots of stuff
//Result := (FFailedFunctionLoadList.Count = 0); // original.
Result := (FFailedFunctionLoadList.Count <= 18); // changed to.
end;
当然,我正在评估的组件在 XE2 中不起作用,但我怀疑这是(a)XE2 附带的 Indy 10 的这个特定快照的损坏,或者(b)SSL DLL 世界的事实是一个名副其实的“为你破碎,但为我工作”的不同版本。
在 Delphi XE2 中使用 Indy(或任何其他支持 SSL 的 delphi 组件库)获得与 Google Calendar 的 SSL 连接,我必须做些什么?
或者,如果有人有一个谷歌日历 API 实现,它可以与 Indy 以外的任何东西一起使用,我可以用来测试,我会很感激链接和指针。