SOAP Aufrufe, XML Output leer...

18. Januar 2010 11:18

Hallo,


ich habe ein hoffentlich kleines Problem mit einem Webservice über SOAP.

Ich möchte von dieser Internetseite die wsdl - Datei verwenden https://ssl.ibanrechner.de/soap/?wsdl
Es scheint so, als wenn der Service funktioniert. Ich bekomme aber nichts in der xml - Datei zurück.

Ich habe die Parameter in einer PHP getestet. Da funktioniert es.....

Der Aufruf im Code sieht so aus:

Code:

// lAuSoapConnector = Automation 'Microsoft Soap Type Library v3.0'.HttpConnector30
// lAuSoapSerializer = Automation 'Microsoft Soap Type Library v3.0'.SoapSerializer30
// lAuXMLDoc = Automation 'Microsoft XML, v6.0'.DOMDocument60

CREATE(lAuSoapConnector);
lAuSoapConnector.Property('EndPointURL','https://ssl.ibanrechner.de:443/soap/index.php');
lAuSoapConnector.Connect;
lAuSoapConnector.Property('AuthUser','********');
lAuSoapConnector.Property('AuthPassword','******');
lAuSoapConnector.Property('Timeout',5*100);
lAuSoapConnector.Property('SoapAction','calculate_iban');
lAuSoapConnector.BeginMessage;

CREATE(lAuSoapSerializer);
lAuSoapSerializer.Init(lAuSoapConnector.InputStream);
lAuSoapSerializer.StartEnvelope('SOAP','STANDARD');
//lAuSoapSerializer.StartEnvelope('SOAP','RPC');
lAuSoapSerializer.StartHeader;
lAuSoapSerializer.EndHeader;
lAuSoapSerializer.StartBody;
lAuSoapSerializer.StartElement('calculate_iban');
  lAuSoapSerializer.StartElement('country');
   lAuSoapSerializer.WriteString('AT');
  lAuSoapSerializer.EndElement;
  lAuSoapSerializer.StartElement('bankcode');
   lAuSoapSerializer.WriteString('34000');
  lAuSoapSerializer.EndElement;
  lAuSoapSerializer.StartElement('account');
   lAuSoapSerializer.WriteString('123456');
  lAuSoapSerializer.EndElement;
  lAuSoapSerializer.StartElement('country');
   lAuSoapSerializer.WriteString('AT');
  lAuSoapSerializer.EndElement;
  lAuSoapSerializer.StartElement('user');
   lAuSoapSerializer.WriteString('*****'); // ausgeblendet
  lAuSoapSerializer.EndElement;
  lAuSoapSerializer.StartElement('password');
   lAuSoapSerializer.WriteString('******'); // ausgeblender
  lAuSoapSerializer.EndElement;
lAuSoapSerializer.EndElement;

lAuSoapSerializer.EndBody;
lAuSoapSerializer.EndEnvelope;
lAuSoapConnector.EndMessage;

CREATE(lAuXMLDoc);
lAuXMLDoc.load(lAuSoapConnector.OutputStream);
lAuXMLDoc.save('c:\output.xml');


Ich glaube, dass der Rückgabewert der SOAP-Schnittstelle ein Array ist.

Hat jemand eine Idee, warum XML nicht befüllt wird?

Danke!

Lg Rom

Re: SOAP Aufrufe, XML Output leer...

29. Juni 2010 16:19

Hast Du das gelöst? Rückgabe von Arrays würde mich gerade auch interessieren.

Volker

Re: SOAP Aufrufe, XML Output leer...

30. Juni 2010 01:48

Hi Rom!

rom hat geschrieben:Hat jemand eine Idee, warum XML nicht befüllt wird?

Wenn du das überflüssige country-Element entfernst, sollte es klappen (das country-Element hast du zweimal definiert).

Weiter kannst du die Properties AuthUser, AuthPassword und SoapAction in lAuSoapConnector entfernen. Auch die beiden folgenden Zeilen sind für die Abfrage nicht erforderlich und können entfernt werden:

Code:
lAuSoapSerializer.StartHeader;
lAuSoapSerializer.EndHeader;

Viele Grüße!
Marc