Hallo liebe Delphi-Praxis-Gemeinde,
ich verzweifel seit einigen Tagen an folgendem Problem:
Ich sende mit Hilfe einer importierten
wsdl Datei einen Request an einen Web-Server eines Dienstleisters, um den Auftrags-Status eines bestimmten Auftrages zu ermitteln.
Der Request sieht wie folgt aus.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/
soap/envelope/" xmlns:amb="http://XXX.XXX.XXX.XXX:8041/orawsv/O/AMBULANZ4KH">
<soapenv:Header/>
<soapenv:Body>
<amb:GET_STATUSInput>
<amb:TRANSPORTAUFTRAGSNUMMER-VARCHAR2-IN>100300</amb:TRANSPORTAUFTRAGSNUMMER-VARCHAR2-IN>
<amb:STATUS-ORDER_STATUS-COUT/>
</amb:GET_STATUSInput>
</soapenv:Body>
</soapenv:Envelope>
Leider erhalte ich von dem zu kontaktierenden Web-Server die Rückmeldung Bad Gateway 502 oder Timeout.
Laut Anbieter des Web-Services stimmt etwas mit der Requestgröße nicht.
Ich habe den oben genannten Request mit
Soap-UI getestet und er bekommt eine ordentliche Antwort.
Dank Wire-Shark habe ich die unterschiedlichen Netzwerk-Transaktionen unter die Lupe nehmen können.
Es gibt kleine Unterschiede zwischen den einzelnen Requests:
Soap-UI: Content-Type: text/
xml; charset=utf-8
Delphi: Content-Type: text/
xml; charset="utf-8"
Soap-UI: Content-Length: 370
Delphi: Content-Length: 380
Hier noch ein Auszug aus der Mail des Anbieters des Webservices:
part of the sent message (in header before
xml) is information about length of
xml, e.g. in 100300:
Content-Length: 380
we have checked the behavior (on our test database without proxy) if this number is wrong
- if number is smaller than real length, the error messages is returned
- if the number is greater than real length, Oracle waits some time whether something will come or not and causes the Timeout-Error
Alles in allem sehe ich zwar das 10 bytes anscheinend den Unterschied machen bei Content-Length, aber ich habe keinerlei Ideen mehr, wie ich herausfinden kann, wo das Problem bzw. dessen Lösung liegt.
Vielleicht hat ja einer von Euch entsprechend Erfahrung und die zündende Idee.
Danke im Voraus
der verzweifelte Kölner