.net Web Service mit PHP und Parameter aufrufen

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

  • .net Web Service mit PHP und Parameter aufrufen

    Hallo miteinander,

    ich habe einen ASP.NET(C#)-Web-Service entwickelt. Diesen kann ich innerhalb ASP.NET einwandfrei benutzen.
    Auch mit PHP kann ich diesen aufrufen und die Daten ausgeben, jedenfalls wenn ich keinen Parameter übergebe. Ich möchte nun aber in der Web-Service-Methode einen Parameter übergeben. So ungefähr:

    PHP-Code:
    $client->WebServiceMethode("DatenID"); 
    Die "WebServiceMethode" ist in ASP.NET entsprechend implementiert:
    [WebMethod]
    public KontaktObjekte WebServiceMethode(string datenid){...}
    Die Rückgabe ist entweder eine komplette Liste, oder eine Liste nur mit der entsprechenden "datenid".

    Irgendwie kommt der Parameter aber nicht an. Das ist merkwürdig, da es mit einem .NET-Web-Service-Aufruf funktioniert. Hat jemand eine Idee?!

  • #2
    du hast zwar gesagt, dass es sich um Webservice handelt, aber du hast nicht gesagt was für eins Service du hast.
    Soap oder xmlrpc ?
    oder was ganz anderes?
    Slava
    bituniverse.com

    Kommentar


    • #3
      Ganz vergessen... ist ein SOAP WS. Benutze die in PHP5 integrierte WS-Technik, also PEAR. Kein nuSoap oder ähnliches.

      Das Problem tritt sofort auf, sobald ich auf die Variable zugreife, selbst bei einer Überprüfung auf "" oder NULL.

      Fehlermeldung ist: "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt." Aber wie gesagt, aus ASP.NET geht es einwandfrei...

      Kommentar


      • #4
        welche probleme genau?
        ausserdem habe ich gehört dass bei .NET generierten WSDL immer wieder Probleme gibt.
        Slava
        bituniverse.com

        Kommentar


        • #5
          Das Problem ist das nichts zurückkommt sobald ich innerhalb von ASP.NET versuche auf die Variable zuzugreifen, die von PHP übergeben wurde.

          Kommentar


          • #6
            es muss dir auch bekannt sein, dass die variablen nicht direkt sondern über object SoapParam übergeben sein müssen, da es in anderem fall zu den Problemen kommen kann.
            Slava
            bituniverse.com

            Kommentar


            • #7
              Kannst du mir das näher erklären?

              Kommentar


              • #8
                Ok, habe es nun einmal mit
                PHP-Code:
                $client->SomeFunction(new SoapParam($a"a")); 
                probiert. Das funktioniert aber auch nicht. Ich habe jedoch festgestellt das der SOAPRequest von PHP nicht ordentlich erstellt wird... Daran wird es wohl liegen!
                Eigentlich sollte es solche eine Struktur sein:
                <env:Body><Objekt><pwd>passwort</pwd><text>undnochtext</text></Objekt></env:Body>

                PHP generiert jedoch
                <env:Body><Objekt/><text>undnochtext</text></env:Body>

                Hast du da vielleicht ne Idee?!

                Kommentar


                • #9
                  ups
                  ich habe gedacht, dass du mit standard-bibliothek von php arbeitest.
                  wenn du das mit pear machst, dann muss du die parameter in ein array packen.
                  http://pear.php.net/package/SOAP/doc...AP_Client.html

                  schau dir ein beispiel
                  http://www.googleduel.com/apiexample.php
                  Slava
                  bituniverse.com

                  Kommentar


                  • #10
                    Super! Jetzt funktioniert es!! Es muss über Parameter gemacht werden, wie du gesagt hast, bzw. wie es in deinen genannten Beispielen ist.

                    Jetzt bin ich aber verwirrt bzgl der von mir genutzten Technik...

                    Ich erstelle den Client so (wie hier -> http://phpbuilder.com/manual/en/func...-construct.php):
                    PHP-Code:
                    $client = new SoapClient("some.wsdl", array('soap_version'  => SOAP_1_2)); 
                    Allerdings muss ich die Parameter als Array übergeben, was ja dem des PEAR entspricht...Was benutze ich jetzt eigentlich?! smilie('')

                    Kommentar


                    • #11
                      lol
                      wenn der object Soap_Client heist, dann ist es von pear
                      und wenn er SoapClient heist, dann ist es vermutlich von standardbibliothek
                      Slava
                      bituniverse.com

                      Kommentar

                      Lädt...
                      X