Archiv verlassen und diese Seite im Standarddesign anzeigen : response von web-service aufrufen, wie?
Hallo,
vielleicht kann mir hier geholfen werden?
Ein Webservice gibt mir einen Response zurück.
Diesen Response möchte ich mit einer load Function laden.
Weiß aber nicht mit welcher. Wie gesagt, liegt keine xml Datei vor, sondern ein Response, der sich laufend ändert.
$soapclient = new SoapClient(null, array(
"location" => $namespace_loc,
"uri" => $namespace_uri,
'soap_version' => SOAP_1_1,
'trace' => 1,
'exceptions' => 0));
$result = $soapclient-> MultiQuery(new SoapParam($soapstruct,"MultiQueryA_1"));
$wsReturn = $soapclient-> __getLastResponse();
Weder das eine noch das andere geht.
$xml = simplexml_load_string($soapclient->__getLastResponse());
$xml = simplexml_load_string($wsReturn);
Kann mir jemand beim Aufruf helfen?
Gruß Anna
eagle275 11-08-2010, 16:35 schau dir doch erstmal die Response an, wenn das kein XML ist , dann wird wohl eine Methode simplexml_load_string damit nicht viel anfangen können
schau dir doch erstmal die Response an, wenn das kein XML ist , dann wird wohl eine Methode simplexml_load_string damit nicht viel anfangen können
im Soap sehe ich die Response.
da steht
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns0="http://weibsites.com/usw">
Sieht für mich nach Xml aus. Der Aufruf findet allerdings via WDSL statt.
Hilft Dir das weiter?
Wie kann ich den Response aufrufen?
:danke:
Ich verstehe das Problem nicht...
Bisher brauchte ich noch nie das vom Soap Server gelieferte xml zu Fuß auswerten.
Ich spreche einfach die die Proxy Methoden des Clients an. Und erhalte dadurch die im XML übergebenen Daten.
Ich verstehe das Problem nicht...
Bisher brauchte ich noch nie das vom Soap Server gelieferte xml zu Fuß auswerten.
Ich spreche einfach die die Proxy Methoden des Clients an. Und erhalte dadurch die im XML übergebenen Daten.
Ich verstehe Deinen Post nicht.
Welche Proxy Methoden des Clients meinst Du? Den Soap Aufruf, wo die Argumente übergeben werden?
Ich bekomme ja alle Daten, will aber nur bestimmte anzeigen.
Wie komme ich denn an diese Daten ran?
Mit foreach gehts
foreach ($wsReturn->obst as $obst)
{
foreach ($obst as $apfel)
{
echo "$apfel->preis";
}
}
aber, wenn bsp. $apfel->preis mehrmals auftaucht, dann bleibt die Anzeige leer. Obwohl print_r($wsReturn); mir 4 verschiedene Preise anzeigt.
Ich dachte, ich kann die Daten via "weiß ich nicht" aufrufen & ausgeben.
Simplexml war auch nur ein Tipp.
:{ Echt zum heulen.
AmicaNoctis 11-08-2010, 22:14 Hallo,
das klingt ein bisschen so, als wäre $apfel->preis auch ein Array und will ebenfalls mit foreach behandelt werden. Zum Testen kannst du ja statt der echo-Anweisung (wieso eigentlich die überflüssigen ""?) mal print_r($apfel->preis); schreiben
Gruß,
Amica
Hallo Amica
hab ich getestet.
Es werden wie bei echo nur die mit einem Wert angezeigt. Die anderen bleiben leer.
:{
Gruß Anna
AmicaNoctis 11-08-2010, 22:41 die mit einem Wert
Bitte genauer, so ist das nicht nachvollziehbar.
foreach ($wsReturn->obst as $obst)
{
foreach ($obst as $apfel)
{
echo "$apfel->preis";
}
}
aber, wenn bsp. $apfel->preis mehrmals auftaucht, dann bleibt die Anzeige leer. Obwohl print_r($wsReturn); mir 4 verschiedene Preise anzeigt.
Mit echo $apfel->preis; und auch mit print_r ($apfel->preis); bleibt die Ausgabe/Anzeige die gleiche.
Alle Äpfel die nur einen Preis haben werden angezeigt. Alle Äpfel die mehrere Preise haben, bleiben die Tabellenfelder leer.
Gruß Anna
AmicaNoctis 11-08-2010, 23:22 Achso. Kann es nicht sein, dass das am Service liegt? Weißt du mit Sicherheit, dass Äpfel mit mehreren Preisen auch wirklich so übertragen werden? Wie sieht das Response-Envelope in diesem Falle aus (komplett)?
|
|