Webservice

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

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

    Kommentar


    • #3
      nusoap
      php4?
      Wir werden alle sterben

      Kommentar


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

        Kommentar


        • #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.
          Zuletzt geändert von combie; 06.11.2010, 12:29.
          Wir werden alle sterben

          Kommentar


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

            Kommentar


            • #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.
              Zuletzt geändert von combie; 06.11.2010, 12:58.
              Wir werden alle sterben

              Kommentar


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

                Kommentar


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

                  Kommentar

                  Lädt...
                  X