response von web-service aufrufen, wie?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 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.

    PHP-Code:
    $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.

    PHP-Code:
    $xml simplexml_load_string($soapclient->__getLastResponse()); 

    $xml simplexml_load_string($wsReturn); 
    Kann mir jemand beim Aufruf helfen?

    Gruß Anna

  • #2
    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
    [font=Verdana]
    Wer LESEN kann, ist klar im Vorteil!
    [/font]

    Kommentar


    • #3
      Zitat von eagle275 Beitrag anzeigen
      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?

      Kommentar


      • #4
        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.
        Wir werden alle sterben

        Kommentar


        • #5
          Zitat von combie Beitrag anzeigen
          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
          PHP-Code:
          foreach ($wsReturn->obst as $obst)
          {
           foreach (
          $obst as  $apfel)
                         {
                         echo 
          "$apfel->preis";
                         }

          aber, wenn bsp.
          PHP-Code:
           $apfel->preis 
          mehrmals auftaucht, dann bleibt die Anzeige leer. Obwohl
          PHP-Code:
          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.

          Kommentar


          • #6
            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
            PHP-Code:
            print_r($apfel->preis); 
            schreiben

            Gruß,

            Amica
            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
            Super, danke!
            [/COLOR]

            Kommentar


            • #7
              Hallo Amica

              hab ich getestet.

              Es werden wie bei echo nur die mit einem Wert angezeigt. Die anderen bleiben leer.



              Gruß Anna

              Kommentar


              • #8
                Zitat von anarosa Beitrag anzeigen
                die mit einem Wert
                Bitte genauer, so ist das nicht nachvollziehbar.
                [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                Super, danke!
                [/COLOR]

                Kommentar


                • #9
                  Zitat von anarosa Beitrag anzeigen
                  PHP-Code:
                  foreach ($wsReturn->obst as $obst)
                  {
                   foreach (
                  $obst as  $apfel)
                                 {
                                 echo 
                  "$apfel->preis";
                                 }

                  aber, wenn bsp.
                  PHP-Code:
                   $apfel->preis 
                  mehrmals auftaucht, dann bleibt die Anzeige leer. Obwohl
                  PHP-Code:
                  print_r($wsReturn); 
                  mir 4 verschiedene Preise anzeigt.
                  Mit
                  PHP-Code:
                  echo $apfel->preis
                  und auch mit
                  PHP-Code:
                   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

                  Kommentar


                  • #10
                    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)?
                    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                    Super, danke!
                    [/COLOR]

                    Kommentar

                    Lädt...
                    X