SOAP-client mit dem Zend framework 2
Ich versuche zum erstellen einer SOAP-client in Zend framework 2 habe ich angelegt, unterhalb dessen die Daten zurück, die richtig
try {
$client = new Zend\Soap\Client("http://www.webservicex.net/country.asmx?WSDL");
$result = $client->GetCountries();
print_r($result);
} catch (SoapFault $s) {
die('ERROR: [' . $s->faultcode . '] ' . $s->faultstring);
} catch (Exception $e) {
die('ERROR: ' . $e->getMessage());
}
aber wenn ich versuche zum senden von Daten an den webservice beispielsweise über
try {
$client = new Zend\Soap\Client("http://www.webservicex.net/country.asmx?WSDL");
$result = $client->GetCurrencyByCountry('Australia');
print_r($result);
} catch (SoapFault $s) {
die('ERROR: [' . $s->faultcode . '] ' . $s->faultstring);
} catch (Exception $e) {
die('ERROR: ' . $e->getMessage());
}
Bekomme ich nur folgende Meldung
ERROR: [soap:Receiver] System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.Data.SqlClient.SqlException: Procedure or function 'GetCurrencyByCountry' expects parameter '@name', which was not supplied. at WebServicex.country.GetCurrencyByCountry(String CountryName) --- End of inner exception stack trace ---
Wie kann ich die Parameter zu den webservices ?
Können Sie ein Beispiel-XML von der Anfrage?
Nicht sicher, wie kann ich die Ausgabe der XML-Rohdaten
Unmittelbar nach dem Aufruf von handle() aufrufen können Sie die getLastRequest() und getLastResponse () - Methoden. Diese könnte man in eine Datei schreiben.
print_r($client- > getLastRequest()); gibt nichts zurück und print_r($client- > getLastResponse());liefert die gleichen soap:Empfänger msg
Ich keine Kontrolle über die server-Seite, ich werde die Verbindung um eine Dritte Partei
Nicht sicher, wie kann ich die Ausgabe der XML-Rohdaten
Unmittelbar nach dem Aufruf von handle() aufrufen können Sie die getLastRequest() und getLastResponse () - Methoden. Diese könnte man in eine Datei schreiben.
print_r($client- > getLastRequest()); gibt nichts zurück und print_r($client- > getLastResponse());liefert die gleichen soap:Empfänger msg
Ich keine Kontrolle über die server-Seite, ich werde die Verbindung um eine Dritte Partei
InformationsquelleAutor LJT | 2013-01-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dein problem liegt in der Anforderung, die WSDL-definiert komplexe Typen:
Also, was Sie brauchen, ist gebaut, um ein Objekt oder eine assoziative Arrays, um verzehrt zu werden durch den webservice. Für die Objekt-Variante, die Sie verwenden können, wird ein stdClass -. Wenn Sie zum ändern der Funktion Aufruf wie dieser:
Ihre Anfrage passt zum Typ, und die Daten werden an den server gesendet. In der zur Verfügung gestellten WSDL-gibt es auch komplexere Varianten, die Sie haben zu handhaben:
Müsste ein setup wie diesem:
Oder als array:
InformationsquelleAutor axel.michel