Einzelnen Beitrag anzeigen

bcvs

Registriert seit: 16. Jun 2011
703 Beiträge
 
Delphi 12 Athens
 
#1

Soap-Service: XML-Fehler

  Alt 1. Feb 2023, 12:39
Hallo zusammen,

Ich bastele an einem SOAP-Client (MyDHLAPI von DHL Express).


Beim Aufruf der aus der wdsl importieren Function getRateRequest erhalte ich diesen Fehler:

Zitat:
Ein XML-Dokument muss ein Element der obersten Ebene enthalten.
Zeile: 0
Mein Code sieht so aus:
Delphi-Quellcode:
procedure TDHLExpress.DoRateRequest;
var Request:RateRequest; // aus der wdsl
    Response:RateResponse; // aus der wdsl
    DHLExpressService:gblExpressRateBook; // aus der wdsl
    DhlExpressHeader:TDHLExpressSoapHeader;
    RIO : THTTPRIO;
begin
  RIO := THTTPRIO.Create(nil);
  RIO.OnAfterExecute :=HTTPRIOAfterExecute;
  RIO.OnBeforeExecute:=HTTPRIOBeforeExecute;

  DHLExpressService:=GetgblExpressRateBook(false, '', RIO);

  DhlExpressHeader :=TDHLExpressSoapHeader.Create; // Für Authentication
  DHLExpressHeader.User:=fUser;
  DHLExpressHeader.Signature:=fSignature;

  Request:=RateRequestCreate; // Hier wird der Request zusammengebaut
  try
    (DHLExpressService as ISOAPHeaders).Send(DHLExpressHeader);
    Response:=DHLExpressService.getRateRequest(Request); // Hier kommt der Fehler
  finally
    Request.Free;
    DhlExpressHeader.Free;
  end;
end;
In HTTPRIOBeforeExecute und HTTPRIOAfterExecute cheche ich, was in SOAPRequest bzw. in SOAPResponse drin steht. SOAPRequest ist in Ordnung, SOAPResponse ist leer.

In einem ähnlichen Fall mit einer anderen API von DHL (nicht Express) funktioniert alles nach diesem Schema bestens.

Was könnte da passiert sein?
  Mit Zitat antworten Zitat