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.