Это время для этого вопроса, но на этот раз с Delphi XE2.
Я использую версию Indy 10.5.8.0, которая поставляется с XE2, и я пробовал четыре разные версии SSL-dll. Я пробовал 1.0.x последние и около 3 разных версий 0.9.8 (e, h, x,....).
Ни один из них не работает при общении с https://URL на странице calendar.google.com. Автор компонента "Календарь Google Delphi Google" в Sync-components.com" отправляет свой собственный двоичный файл openssl DLL, которые не имеют в нем никакой информации о версии, но это, по-видимому, очень маленькая, очень старая версия SSL-библиотек старше 0.9.8. Автор компонента говорит, что работают только его частные неверующие библиотеки DLL. Я не могу в это поверить. Разумеется, хотя бы одна версия DLL openSSL работает достаточно хорошо, чтобы Delphi XE2 подключился к Календарю Google.
Чтобы загрузить свою обычную старую DLL для загрузки в Indy 10 в Delphi XE2, он модифицирует метод IdSSLOpenHeaders.pas Load, как это, в конце:
function Load: Boolean;
begin
/// ... lots of stuff
//Result := (FFailedFunctionLoadList.Count = 0); // original.
Result := (FFailedFunctionLoadList.Count <= 18); // changed to.
end;
Конечно, компонент, который я оцениваю, не работает в XE2, но я подозреваю, что это нарушение (a) данного моментального снимка Indy 10, который поставляется с XE2, или (b) тот факт, что мир SSL DLL - это настоящий ад, "сломанный для вас, но работает для меня" в разных версиях.
Что мне нужно сделать, чтобы получить SSL-соединение с Календарем Google, используя Indy (или любую другую библиотеку компонентов Delphi с поддержкой SSL) в Delphi XE2?
В качестве альтернативы, если у кого-то есть реализация API календаря Google, которая работает с чем-то другим, кроме Indy, который я мог бы использовать для тестирования, я был бы признателен за ссылки и указатели.