Я пытаюсь подключиться к онлайн-API с помощью Indy HTTP-клиента. Я получаю сообщение об ошибке: «Авторизация не удалась (это наше сообщение). EIdOSSLUnderlyingcryptoerror Ошибка соединения с SSL, ошибка: 14094410: ssl ROUTINES: SSL3_READ_BYTES: сбой квитирования оповещения SSLV3.»
Идентификатор idSSLIOHandler устанавливается в режиме какsslmClient.
`procedure TOnLineSettingsForm.Button5Click(Sender : TObject);
var
S: TStringStream;
R : TStringStream;
sTest : String;
sResponse : String;
sAuthCode : AnsiString;
begin
//S := TStringList.Create;
R := TStringStream.Create;
if Length(edCert.Text) <> 0 then
begin
try
try
sAuthCode := 'AUTHORISATION:' + edCert.Text;
S := TStringStream.Create('AUTHORISATION:' + edCert.Text, TEncoding.UTF8);
S.Position := 0;
with IdHTTP1 do
begin
IOHandler := IdSSLIOHandlerSocketOpenSSL1;
Post('https://api.cloudwaitress.com/V1/...', S); // sAuthCode);
sResponse := ResponseText;
end;
sTest := R.DataString;
except
on e:exception do
begin
Showmessage('Authorisation failed....' + e.ClassName + ' ' + e.Message);
sTest := R.DataString;
end;
end;
finally
s.Free;
R.Free;
end;
end else
begin
Beep;
Beep;
ShowMessage('Please enter the id code.');
end;
end;`
В документации говорится, что для аутентификации требуется следующее:
curl https://api.cloudwaitress.com/v1/... -H "Авторизация: YOUR_API_KEY"
Я был обеспокоен тем, что«...» в конце URL-адреса будет недействительным, поэтому я пропустил его. Получил ошибку, так что отложите ее обратно. Та же ошибка. Так что, я подозреваю, проблема в другом. Я отмечаю, что авторизация не включает ничего о типе контента. Хотя другие запросы для этого API требуют и требуют "application / json".
Возможно ли сбой рукопожатия просто означает, что соединение API недействительно?
Извините - следовало сказать -Версия Indy - 10.6.1.5182. Я отмечаю, что та же самая ошибка может быть вызвана, если TLS требуется на сервере. И эта Indy 10.6.2 исправила эту проблему. Могу ли я получить более свежую версию Indy?
Спасибо
Алан