SOAP mit XML Datei. Wie aufbauen

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

  • SOAP mit XML Datei. Wie aufbauen

    Hi

    Ich würde gerne Informationen die ich von einer Seite zur verfügung gestellt bekomme abrufen. Ich habe jetzt schon einige Seiten durch, finde aber immer nur Tutorials und Codeschnippsel wo der Code anders aufgebaut ist.

    Ich habe folgende Hilfe bekommen:
    Request:

    POST /MyWebServices/ACService.asmx HTTP/1.1
    Host: the.host.tld
    Content-Type: text/xml; charset=utf-8
    Content-Length: length
    SOAPAction: "http://the.otherhost.tld/MyServices/CheckMyData"

    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
    <CheckAccount xmlns="http://the.otherhost.tld/MyServices/">
    <userNick>string</userNick>
    <userPassword>string</userPassword>
    </CheckAccount>
    </soap:Body>
    </soap:Envelope>

    Response:

    HTTP/1.1 200 OK
    Content-Type: text/xml; charset=utf-8
    Content-Length: length

    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
    <CheckAccountResponse xmlns="http://the.otherhost.tld/MyServices/">
    <CheckAccountResult>
    ..........
    <EMail>string</EMail>
    </CheckAccountResult>
    </CheckAccountResponse>
    </soap:Body>
    </soap:Envelope>
    Vielleicht hat hier jemand ein kleinen anhaltpunkt wie ich dies aufbauen muss.

    Ein kleiner Codeschnippsel wie ich an die Antwort vom Webservice kommen würde mir schon reichen um nachher weiter zu fahren.

    Danke schonmal für eure Tipps

    Gruss

    Koda

  • #2
    Hallo,

    normalerweise musst du dir darüber keine Gedanken machen, wenn du gleich die SOAP-Unterstützung von PHP nimmst.

    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


    • #3
      Hi

      Danke für deine Antwort. Diese habe ich auch bereits durchgelesen und habe auch gesehen das diese einkompiliert ist. Daher wäre dies kein Problem.

      Ich denke, den XML Teil kann ich in eine XML packen. Aber mit dieser Passage bin ich mir nicht so sicher was ich anfangen soll:

      POST /MyWebServices/ACService.asmx HTTP/1.1
      Host: the.host.tld
      Content-Type: text/xml; charset=utf-8
      Content-Length: length
      SOAPAction: "http://the.otherhost.tld/MyServices/CheckMyData"
      Vielleicht hat ja noch einer ein Tipp für mich oder sogar ein kleinen Codeschnippsel zum mal einen Anfang zu haben.

      Gruss

      Koda

      Kommentar


      • #4
        Ich versteh dein Problem nicht. Du brauchst dich nicht um die HTTP-Header kümmern, also musst du mit dieser Passage gar nichts anfangen, abgesehen davon, dass du den Wert von SOAPAction auch in PHP brauchen wirst.

        Zitat von Koda Beitrag anzeigen
        Ich denke, den XML Teil kann ich in eine XML packen.
        Klingt irgendwie logisch, aber warum willst du dich selbst darum kümmern?

        Kann es sein, dass du dich noch nie richtig mit SOAP beschäftigt hast und dass du entgegen deiner Behauptung auf keinen Fall das gesamte Kapitel im Handbuch gelesen hast?
        [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


        • #5
          Hi

          Danke für deine Antwort.

          Ich hatte die Vermutung als ich andere Tutorials mit einer wsdl datei oder was es war gelesen habe das ich diese irgendwie mitgeben muss.

          Ich habe ja in diesem xml beispiel werte die ich übergeben muss. So z.B: pw und user.

          Ich habe nie behauptet das ganze Kapitel gelesen zu haben. Ich habe die für mich anfänglich Relevanten dinge wie Instalation und die einzelnen Funktionen mal angesehen. Habe aber natürlich noch nicht alles durch wie es genau funktioniert.

          Daher hoffte ich ja auf einen kleinen schnippsel oder so, da ich so meistens einfacher verstehen kann als mit so einem text.

          Gruss

          Koda

          Kommentar


          • #6
            Wenn du dir die Benutzerkommentare ansiehst, solltest du Unmengen kleiner Schnipsel finden. Wenn die nicht ausreichen sollten, bitte begründen.
            [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
              Hi

              Leider komme ich momentan mit gar keinem Beispiel zurecht. Ich finde einfach auch kein Beispiel mit meiner XML struktur und dem:
              POST /MyWebServices/ACService.asmx HTTP/1.1
              Host: the.host.tld
              Content-Type: text/xml; charset=utf-8
              Content-Length: length
              SOAPAction: "http://the.otherhost.tld/MyServices/CheckMyData"
              Finde so gar nicht wo ich was eintragen muss und wie ich was übergeben kann in form dieser xml nur mit wsdl.

              Bin jetzt die Funktionen und Beispiele weiter am durchsehen. Aber vielleicht hast ja trotzdem noch ein Codeschnippsel zur Hand.

              Gruss

              Koda
              Zuletzt geändert von Koda; 10.09.2010, 18:58.

              Kommentar


              • #8
                Ich finde einfach auch kein Beispiel mit meiner XML struktur
                Was kümmerst du dich um das XML?
                Soll sich das Soap intern damit rum schlagen, aber doch nicht du!


                und dem:
                Und was ist mit den Headern?
                Wo ist dein Problem damit, dass der PHP Soap Client diese, oder ähnliche Header automatisch sendet?
                Wir werden alle sterben

                Kommentar


                • #9
                  Hi

                  Ich verstehe einfach das Prinzip nicht.

                  Ich habe einige Beispiele mit fsockopen gefunden. Dort muss man die xml datei mit den inhalten übergeben. Muss ja werte übergeben, damit ich den richtigen rückgabewert bekomme. Aber dort überschreitet es eigentlich immer die Zeit. Das müsste theoretisch schneller gehen.

                  Im Anfangsstudium übergebe ich benutzername damit ich diese infos bekomme. später müsste ich eigentlich auch ware uploaden können. Aber irgendwo habe ich glaub langsam ein durcheinander damit ich da nicht weiterkomm.

                  Gruss

                  Koda

                  Kommentar


                  • #10
                    Hi

                    Kann leider nicht mehr Editieren. Habe es nun geschaft mit einem fsockopen ein post abzusetzen der mir dann einfach die daten übergibt und so bekomme ich auch die ausgabe bekomme. Ich denke zwar es ist nicht die Ideale variante oder?

                    Ich habe auch noch ein anderes beispiel wo die XML so aussieht:
                    <MyNr>int</MyNr> <MyArray> <My> <FolderType>....</FolderType>
                    Ich konnte ja vorher mit $data="wert1=...&wert2=..." arbeiten. Aber hier habe ich ja den ersten wert MyID aber nachher konnt wie eine "unterkategorie". Ich werde morgen mal testen ob ich hier auch einfach mit dem arbeiten kann. Sollte dies gänzlich der falsche ansatz sein, hat vielleicht jemand noch ein tipp.

                    Gruss

                    Koda

                    Kommentar


                    • #11
                      Solange du mit Sockets, XML, Dateien oder HTTP herum machst, hat das nichts mit SOAP zu tun. Schau dir mal die Beispiele und User Comments im Kapitel SOAP des PHP Manual an!

                      Kommentar


                      • #12
                        Hi

                        Wie bereits gesagt habe ich dies schon mehrfach. Nur leider kann ich kaum englisch. Mit dem was ich verstanden habe, habe ich es ja versucht. Da nichts klappte habe ich es mit fsockopen versucht was klappte. Zumindest der anfang. Nur nicht wirklich weiter.

                        Ich schau mir nun nochmals die beispiele an und hoffevdas ich mehr verstehe.

                        EDIT: Ich habe nun den ersten aufruf auch ohne fsockopen hinbekommen. Ich denke so ist es richtig.
                        PHP-Code:
                        $client = new SoapClient('http://.......service.asmx?WSDL');
                        $params = array('param1'=>"Wert1"'param2'=>"Wert2", ....);
                        $result $client->__soapCall('CheckAccount', array('param1' => $params)); 
                        So bekomme ich genau die ausgabe wie ich wollte.

                        Mal sehen ob ich weiter komme

                        Gruss

                        koda
                        Zuletzt geändert von Koda; 11.09.2010, 08:16.

                        Kommentar


                        • #13
                          Ich denke so ist es richtig.
                          Immer noch eine halbe Sache....
                          Eigentlich müsste es auch doch so funktionieren:
                          PHP-Code:
                          $client = new SoapClient('http://.......service.asmx?WSDL');
                          $result $client->CheckAccount('Wert1','Wert2'); 

                          Nur leider kann ich kaum englisch
                          .
                          Das ist schlecht!
                          Sehr schlecht.
                          Wir werden alle sterben

                          Kommentar

                          Lädt...
                          X