AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Indy - socket error #10061 & Unexpected EOF

Indy - socket error #10061 & Unexpected EOF

Ein Thema von Minz3 · begonnen am 3. Feb 2020 · letzter Beitrag vom 4. Feb 2020
Antwort Antwort
Benutzerbild von Minz3
Minz3

Registriert seit: 18. Jul 2019
Ort: Thüringen
48 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#1

Indy - socket error #10061 & Unexpected EOF

  Alt 3. Feb 2020, 10:45
Delphi-Version: 10.1 Berlin
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!
Attention:
Brain.exe has stopped working. Reboot the system in 3... 2... 1... ... ... ... Attempt failed.
  Mit Zitat antworten Zitat
Benutzerbild von Minz3
Minz3

Registriert seit: 18. Jul 2019
Ort: Thüringen
48 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#2

AW: Indy - socket error #10061 & Unexpected EOF

  Alt 3. Feb 2020, 11:31
1. Edit:
Das Get Problem scheint sich von selbst gelöst zu haben. Ich habe mit Fiddler mal geschaut, was so hin und her geschickt wird und auf einmal ging es...
Das Post Problem bleibt weiterhin.

2. Edit:
Die oben Angesprochenen Settings werden im Quellcode übrigens bei FormActivate gesetzt.
Delphi-Quellcode:
  IdHTTP.ProxyParams.ProxyPort := PROXYPORT;
  IdHTTP.ProxyParams.ProxyServer := PROXYSERVER;
  IdSSLIOHandlerSocketOpenSSL1.Host := SSLHOST;
  IdSSLIOHandlerSocketOpenSSL1.Port := SSLPORT;
Die Konstanten dazu sehen ähnlich langweilig aus:
Delphi-Quellcode:
  const PROXYPORT = 8888;
  const PROXYSERVER = '127.0.0.1';
  const SSLHOST = 'NB1819157';
  const SSLPORT = 5001;
Ich dachte das wäre vielleicht noch erwähnenswert.
Attention:
Brain.exe has stopped working. Reboot the system in 3... 2... 1... ... ... ... Attempt failed.

Geändert von Minz3 ( 3. Feb 2020 um 13:00 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Minz3
Minz3

Registriert seit: 18. Jul 2019
Ort: Thüringen
48 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#3

AW: Indy - socket error #10061 & Unexpected EOF

  Alt 4. Feb 2020, 11:26
Update:

Sowohl das GET, als auch das POST Problem ließen sich auf meine Einstellungen zurückführen...
Delphi-Quellcode:
  //IdHTTP.ProxyParams.ProxyPort := PROXYPORT;
  //IdHTTP.ProxyParams.ProxyServer := PROXYSERVER;
  //IdSSLIOHandlerSocketOpenSSL1.Host := SSLHOST;
  //IdSSLIOHandlerSocketOpenSSL1.Port := SSLPORT;
Nachdem die default Werte hier wiederhergestellt wurden, lief es zumindest beim GET wieder wie geplant. Und beim POST kommt nun eine neue Fehlermeldung:

"HHTP/1.1 400 Bad Request"

Achja und Fiddler scheint irgendwie auch als ein Proxy Server zu fungieren. Auf jeden Fall wurden die Anfragen umgeleitet und haben unter Anderem auch deswegen nicht funktioniert. Vorher habe ich noch nicht damit gearbeitet daher kann ich da keine genaue Aussage zu treffen.
Attention:
Brain.exe has stopped working. Reboot the system in 3... 2... 1... ... ... ... Attempt failed.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf