Huhu,
ich versuche mit den
Indy Komponenten auf eine
API zuzugreifen.
Bei meiner Get Methode, kommt die Socket Fehlermeldung #10061 "Verbindung abgelehnt".
Bei meiner Post Methode, kommt die EOF Meldung "EOF festgestellt, da gegen das Protokoll verstößt."
Mit Postman habe ich die Requests nochmal überprüft und da gehts. Die Verbindung scheint zu stimmen und die
API ist generell ansprechbar.
Ich nutze die IdHTTP und die IdSSLIOHandlerSocketOpenSSL Komponenten von
Indy.
IdHTTP Settings (abseits vom Default):
ProxyPort: 8888
ProxyServer: 127.0.0.1
SSLHandler Settings (abseits vom Default):
SSLVersion: TLSv1_1
SSLHost: 'NB1819157' {Notebook Name}
SSLPort: 5001
Get Methode:
Delphi-Quellcode:
var
ResponseStream: TFileStream;
begin
ResponseStream := TFileStream.Create(edtDatei.Text, fmCreate);
try
IdHTTP.Get(edtURL.Text, ResponseStream);
lbHTTPResponse.Caption := 'HTTP-Status: ' + IntToStr(IdHTTP.ResponseCode);
finally
ResponseStream.Free;
end;
ShowMessage('Download abgeschlossen')
end;
Post Methode:
Delphi-Quellcode:
var
ResponseStr:
string;
Data : TStringStream;
begin
with TIdHTTP.Create(
nil)
do
try
Request.ContentType := '
application/atom+xml';
Data := TStringStream.Create('
', CP_UTF8);
try
if not SystemOptionsManager[11472].AsString.IsEmpty
then
begin
memo1.lines.Add('
https://' + SystemOptionsManager[11472].AsString
{'nb1819157:5001'} + '
/loginIntegration?' + URLBuilder(Username, Password, Database));
Data.WriteString(URLBuilder(Username, Password, Database));
Request.CharSet := '
UTF-8';
ResponseStr := Post('
https://'+SystemOptionsManager[11472].AsString+'
/loginIntegration?', Data);
end
else
begin
ShowMessage('
Keine URL zur API angegeben.');
end;
finally
Data.Free;
end;
finally
Free;
end;
end;
Hoffe es hat jemand eine Idee dazu, ich bin dankbar über jeden hilfreichen Ansatz.
Grüße!