response von web-service aufrufen, wie?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

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

    Comment


    • #3
      Originally posted by eagle275 View Post
      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?

      Comment


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

        Comment


        • #5
          Originally posted by combie View Post
          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.

          Comment


          • #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]

            Comment


            • #7
              Hallo Amica

              hab ich getestet.

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



              Gruß Anna

              Comment


              • #8
                Originally posted by anarosa View Post
                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]

                Comment


                • #9
                  Originally posted by anarosa View Post
                  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

                  Comment


                  • #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]

                    Comment

                    Working...
                    X