Einzelnen Beitrag anzeigen

Roadrunner.1

Registriert seit: 3. Mai 2009
20 Beiträge
 
Delphi 10.3 Rio
 
#1

Bekomme XML-Datei via NetHTTPRequest.Post nicht hin.

  Alt 2. Jun 2019, 12:38
Hallo Comunity,
ich bin Neuling im Bereich "Internet-Anwendung" und bekomme es einfach nicht hin, eine XML-Datei für ein Login an einen Server (fehlerfrei) zu schicken.

Gesammtanforderung ist, sich mittels einer XML Datei bei einem Server anzumelden und dann in einem 2. Schritt eine andere XML Datei dorthin zu schicken
(eine Bestellung). Der Server verlangt "HTTPS" weshalb ich aufs neuste Delphi umgestiegen bin. Da die Installation der Software einfach sein sollte
habe ich ich für diese "NET" Komponenten entschieden um nicht openSSL beim User installieren zu müssen.

Ich habe mir eine XML Datei gebastelt (vom Type IXMLDOCUMENT), aufs Formular eine TNetHTTPClient und TNetHTTPRequest Komponete gesetzt,
dann im Object Inspector beim NetHTTPClient alle SecureProtocols angeklickt und beim NetHTTPRequst bei Client den NetHTTPClient eingetragen.

Im Quellcode geht's dann so weiter:

Delphi-Quellcode:
var
  ServerResponse:IHTTPResponse;
  LoginXML:IXMLDOCUMENT
begin
  // [Erstelle Inhalt von LoginXML]
  NetHTTPRequest.URL:='https://www.________________/CmdS.asmx';
  NetHTTPRequest.MethodString:='POST';
  ServerResponse:=Post(URL,LoginXML.XML, nil, TEncoding.UTF8);
end;
Als Antwort erhalte ich leider (in ServerResponse) Fehler 500: interner Server Error. Er beschwert sich das schon das 1.
übergebene Zeichen er nicht versteht (Zeile 1 Position 1). Nun halte ich mich aber genau an die Dokumentation die da
lautet:

Code:
<r c="1">
  <Login>Benutzername</Login>
  <Pwd>thePasswort</Pwd>
  <Stamp>theStamp</Stamp>
</r>
Auch ein Übergaben dieses Inhalts mittels einer TStringliste führt zur gleichen Serverrückmeldung.
Sowie diverse Änderungen am POST wie z.B.: TEncoding.Default, weglassen des letzten, der letzten 2
Parametern etc. änderte nichts an der Fehlermeldung. Eigentlich sollte vom Server ein XML zurück
gegeben werden indem entweder der Login bestätigt wird, oder mitgeteilt wird das der Login abgelehnt
wurde.

Vermutlich habe ich aber irgendwie ein Grundsätzliches Verständnisproblem oder irgend eine Einstellung
stimmt (noch) nicht. Kann mir irgend einer Erklären wie man sich bei einem Server via XML und HTTPS
anmeldet und dabei von Ihm eine XML zurück bekommt? Der 2. Schritt ist ja ähnlich, nur das da irgend
ein "Session Key" mit übergeben werden muss!? Aber eins nach dem anderen.

btw. In Wireshark konnte ich sehen das von Delphi 2 "Application Data"s (natürlich verschlüsselt) direkt
hintereinander geschickt werden. Vom Server kommt dann nur ein Application Data zurück.

ps. Ein Beispiel, ein Link zu einer Doku etc. würde mir eventuell auch schon weiter helfen, konnte aber
leider bisher nichts brauchbares finden.

Schon mal danke fürs lesen bis hierhin.
Christian Drenkard
--
mfg.
Christian Drenkard

Geändert von Roadrunner.1 ( 2. Jun 2019 um 12:44 Uhr)
  Mit Zitat antworten Zitat