SOAP Client

dwex

Erfahrenes Mitglied
Hallo Leute - ich mal wieder ;-)

Ich habe ein kleines Problem bei dem ich nicht weiter komme.
In meiner PHPinfo steht, dass sowohl der SOAP-Client als auch der SOAP-Server eingeschaltet ist.

Jetzt soll ich per SOAP Daten an einen Webservice liefern dazu hat mir der Webservicebetreiber mittlerweile eine ganz einfache Methode (Test1) eingerichtet welche nur einen String von mir erwartet und diesen 1:1 an mich zurück geben soll.

Leider funktioniert es nicht.

Hier mal mein Sourcecode
PHP:
$a = new SoapClient("https://xxxxxxxx.de/Portal/WebService.asmx?wsdl");
$a->Test1("das ist mein string");

Der Request kommt auf dem Server an - jedoch wird mein String nicht übergeben.
Wenn man sich Serverseitig ansieht was per Post gesendet wird stelle ich fest, dass er zwar den XML-Request sendet der soap-body aber leer ist. Soweit ich weis holt sich PHP ja diese Info aus der wsdl-Datei. Komisch ist, dass wenn man per .net den Request macht dass der Soap-Server die Requests empfangen kann - also am Server sollte es nicht liegen.

Hat jeamand eine Idee was ich hier ggf. falsch mache bzw. wo der Fehler liegen könnte?

Vielen Dank im Voraus für eure Hilfe.
 
Zuletzt bearbeitet:
Hallo dwex,

vielleicht kannst du die Sache etwas eingrenzen, in dem du beim SoapClient-Konstruktor die Trace-Funktion und Exceptions einschaltest:

PHP:
$a = new SoapClient("https://xxxxxxxx.de/Portal/WebService.asmx?wsdl", array("trace" => true, "exceptions" => true));
try
{
  $a->Test1("das ist mein string");
}
catch(SoapFault $ex)
{
  echo $ex->faultCode . " => " . $ex->faultString . "<br/>" . $ex->detail;
}

Falls du aus einem bestimmten Grund keine Exceptions verwenden willst, wäre evtl. noch is_soap_fault und use_soap_error_handler für dich interessant.
 
Zurück