Вот я
1 - Прежде всего, убедитесь, что вы обновили исходный код indy.
2 - Загрузите DLL-файлы здесь Indy SLL DLLS и поместите их в вывод вашего приложения
3 - Убедитесь, что у вас TIdSSLIOHandlerSocketOpenSSL
подключен к свойству TidHttp
IOHandler
со следующими настроенными свойствами:
SSLOptions.Method := sslvSSLv23;
SSLOptions.Mode := sslmUnassigned;
OnVerifyPeer := SSLIOHandlerVerifyPeer;
SSLOptions.VerifyMode := [sslvrfPeer];
SSLOptions.VerifyDepth := 2;
4 - Напишите это событие:
function SSLIOHandlerVerifyPeer(Certificate: TIdX509; AOk: Boolean; ADepth, AError: Integer): Boolean;
begin
Result := True;
end;
5 - Включить эти единицы в пункт о вашем использовании:
IdAuthentication, IdAuthenticationDigest, IdAuthenticationNTLM
6 - Установите для события TidHttp.OnProxyAuthorization
следующее:
procedure IdHTTPProxyAuthorization(Sender: TObject; Authentication: TIdAuthentication; var Handled: Boolean);
begin
Handled := False;
end;
7 - Установите эти свойства:
IndyHttpClient.HTTPOptions := IndyHttpClient.HTTPOptions + [hoKeepOrigProtocol] + [hoInProcessAuth];
IndyHttpClient.ProtocolVersion := pv1_1;
IndyHttpClient.ProxyParams.ProxyServer := 'you proxy address here'
IndyHttpClient.ProxyParams.ProxyPort := 8080;
IndyHttpClient.ProxyParams.ProxyUsername := 'your proxy username here';
IndyHttpClient.ProxyParams.ProxyPassword := 'your proxy psw here';
Теперь тебе пора. Этот код также будет работать с Microsoft ISA Server. Если вы хотите, чтобы я, я могу отправить вам полный исходный код моего компонента. Я не буду размещать это здесь, потому что это было написано на португальском языке (если кто-то не говорит, что это хорошо, чтобы отправлять).