Webservice

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

  • Webservice

    Hallo,

    ich versuche momentan, mich mit Webservices auseinander zu setzen. Ich bin noch neu in Sachen PHP und Webservices.

    Ich habe testweise einmal versucht, diesen Webservice aufzurufen:
    Webseite: BLZ Web Service fr Bankleitzahlen
    WSDL: http://www.thomas-bayer.com/axis2/se...LZService?wsdl
    Mit folgendem code:
    PHP Code:
    <?php
        
    require_once('nusoap.php');
        
    $parameters = array("getBank" => "Sparkasse Krefeld");
        
    $soapclient = new soapclient('http://www.thomas-bayer.com/axis2/services/BLZService?wsdl','wsdl');
        
    $data $soapclient->call('getBank',$parameters);
        echo 
    $data;
    ?>
    Ich bekomme allerdings keine Antwort. Wo liegt der Fehler?
    Danke

  • #2
    Dieser Webservice erwartet eine BLZ und liefert dazu den Namen der Bank. Nicht umgekehrt.

    Comment


    • #3
      nusoap
      php4?
      Wir werden alle sterben

      Comment


      • #4
        Ok, habe es nun so versucht, leider ohne den gewünschtne Erfolg:

        PHP Code:
        <?php
            
        require_once('nusoap.php');
            
        $param = array("getBank" => "32050000");
            
        $client = new soapclient('http://www.thomas-bayer.com/axis2/services/BLZService?wsdl',true);
            
        $result $client->call('getBank',$param);
            echo 
        $result;
        ?>
        @combie:
        Was willst du mir damit sagen? phpinfo() sagt mir
        PHP Version 5.3.2-1

        Comment


        • #5
          @combie:
          Was willst du mir damit sagen? phpinfo() sagt mir
          PHP Version 5.3.2-1
          Ich will dir damit sagen, dass du nur glaubst nusoap zu verwenden.


          leider ohne den gewünschtne Erfolg:
          Wie wäre es mal mit error_reporting aktivieren und die erscheinenden Fehlermeldungen posten....

          Außerdem ist dieser Service ein schlechtes Beispiel zum Üben. Der Autor sagt selber, dass er dafür nicht die Hand ins Feuer legt.
          Last edited by combie; 06-11-2010, 11:29.
          Wir werden alle sterben

          Comment


          • #6
            Ok, wieso glaube ich nur, nusoap zu verwenden?
            Hast du einen besseren Webservice zum Üben parat?
            Fehlermeldung:

            PHP Fatal error: Uncaught SoapFault exception: [Client] SoapClient::SoapClient() [soapclient.soapclient]: Invalid parameters in /var/www/simon/test.php:4

            Comment


            • #7
              Ok, wieso glaube ich nur, nusoap zu verwenden?
              Das frage ich mich auch.....
              Vermutlich hast du nicht ins PHP Handbuch geschaut....

              NuSoap wurde für PHP4 geschrieben!
              Es kann also gar nicht irgendwelche Exceptions werfen



              Invalid parameters in /var/www/simon/test.php:4
              Dann lass den doch mal weg....
              Lesen: PHP Handbuch


              Und, schmeiß diese Zeile einfach raus:
              PHP Code:
               require_once('nusoap.php'); 
              Du wirst sehen, die Fehlermeldung ändert sich dadurch nicht.
              Last edited by combie; 06-11-2010, 11:58.
              Wir werden alle sterben

              Comment


              • #8
                Hast du einen besseren Webservice zum Üben parat?
                Nöö, nicht direkt...

                Aber ich habe diesen mal untersucht....
                1. Er funktioniert
                2. es müssen/sollten die nötigen Strukturen geschaffen werden


                Abfragen der Fähigkeiten des Service:
                PHP Code:
                <?php
                error_reporting
                (-1);
                ini_set('display_errors'TRUE);

                $wsdl       'http://www.thomas-bayer.com/axis2/services/BLZService?wsdl';

                $soapclient = new SoapClient($wsdl);


                ?>
                <h1>Funktionen</h1>
                <pre> <?php var_dump($soapclient->__getFunctions())?> </pre>
                <h1>Typen</h1>
                <pre> <?php var_dump($soapclient->__getTypes())?> </pre>
                Diese Datentypen sollten angelegt werden!
                Zumindest muss "getBankType" erzeugt werden.
                Warum die Funktion getBank 2 mal auftaucht, KA (ist mir auch erstmal egal)



                Also könnte der fertige Code für eine Abfrage in etwa so aussehen:
                PHP Code:
                <?php
                error_reporting
                (-1);
                ini_set('display_errors'TRUE);

                 
                class 
                GetBankType
                {
                  public 
                $blz// String
                }

                class 
                GetBankResponseType
                {
                  public 
                $details// DetailsType
                }

                class 
                DetailsType
                {
                  public 
                $bezeichnung;  //  String
                  
                public $bic;          //  String
                  
                public $ort;          //  String
                  
                public $plz;          //  String
                }
                 
                $options = array();
                $options['classmap'] = array();
                $options['classmap']['getBankType']         = 'GetBankType';
                $options['classmap']['getBankResponseType'] = 'GetBankResponseType';
                $options['classmap']['detailsType']         = 'DetailsType';


                $wsdl       'http://www.thomas-bayer.com/axis2/services/BLZService?wsdl';
                $bank       = new GetBankType;
                $bank->blz  "37069521";


                $soapclient = new SoapClient($wsdl,$options);
                $result     $soapclient->getBank($bank);

                // Ausgabe
                echo "BLZ: "$bank->blz ." gehört zu: "$result->details->bezeichnung;

                ?>
                <h1>Result</h1>
                <pre> <?php var_dump($result)?> </pre>
                Wir werden alle sterben

                Comment


                • #9
                  Ah, ok. Das hatte ich mir ganz anders gedacht. Dann weiss ich ja jetzt endlich mal, wie man so eine wsdl zu verstehen hat. ^^ Danke vielmals

                  Comment

                  Working...
                  X