Service:
doGetDMZRecord (Retourneert informatie over een bedrijf.)
Programmeertaal:
PHP (Open-source voor interactieve websites)
Protocol:
XMLRPC
<?php /** * @file Voorbeeldcode webservice AdresXpress/XML-RPC/PHP * @copyright Cendris Dataconsulting December 2008 * @author W.J.J. Tol * @version 1.0 * */ // Output van de webservice tonen we later onderaan het formulier $xWebserviceOutput = 'Nog geen output aanwezig.'; // Controleer of we dit formulier reeds een keer ge-submit hebben. { // Normaal gesproken zouden we hier de input van de gebruiker controleren // In dit voorbeeld slaan we deze actie over. // Allereerst hebben we de xmlrpc bibliotheek nodig. // Deze zorgt ervoor dat de 'message' netjes in XML verpakt wordt en dat dit // xml pakketje op het juiste adres wordt afgeleverd. require_once('xmlrpc.inc'); // Tweede stap is het opbouwen van 'message' object // In deze fase geven we al aan wat de naam is van de service die we gaan aanroepen $oMessage = new xmlrpcmsg('doGetDMZRecord'); // Vervolgens voegen we de gewenste parameters toe $oMessage->addParam( new xmlrpcval( $_POST['gebruikersnaam'] , 'string')); $oMessage->addParam( new xmlrpcval( $_POST['wachtwoord'] , 'string')); $oMessage->addParam( new xmlrpcval( $_POST['search_id'] , 'string')); $oMessage->addParam( new xmlrpcval( $_POST['kvk_hash'] , 'string')); // Nu is het tijd om het client object aan te maken die het daadwerkelijke // contact met de server gaat leggen. $oClient = new xmlrpc_client('http://www.cendris.nl/webservices/services/xmlrpc'); // De xmlrpc bibliotheek heeft een handige debugmodues om eventuele problemen op te sporen // Parameters zijn 0=UIT en 1=AAN // We zetten de debugmodus hier dus expliciet uit $oClient->setDebug(0); // Laatste stap is het daadwerkelijk versturen van de opgebouwde 'message' // en het opvangen van het 'response' object $oResponse = $oClient->send( $oMessage ); // Is er wat fout gegaan? // De foutcode is een numerieke waarde 0=ok , >1 = fout // $oResponse->faultString() kan gebruikt worden om de foutmelding te achterhalen. if ($oResponse->faultcode()) { // Toon in dit geval het volledige response object voor bestudering $xWebserviceOutput = $oResponse; } else { // Het Response object bevat niet alleen de waarden die we hebben willen // maar nog heel veel andere gegevens zoals bijvoorbeeld eventuele foutcodes // de ruwe xml gegevens etc. etc. // Met de volgende regel halen we alleen de gewenste informatie op. $oValue = $oResponse->value(); // Rest ons alleen nog maar om uit de terugeleverde structuur precies die // informatie te halen die we echt weten willen. // In dit geval gebruiken we een bibliotheek functie om de teruggeleverde // waarde om te zetten naar een geneste php-array $xWebserviceOutput = xmlrpc_decode( $oValue ); } } ?> <html> <body style="font-family:Verdana;"><div style="postion:relative;left:10px;"> <h3>XML-RPC Voorbeeldcode<br /> <i>doGetDMZRecord</i></h3><br /> <form name="example_form" enctype="multipart/form-data" method="POST" action="<?php print $_SERVER['PHP_SELF']?>"> <table> <tr> <td>Gebruikersnaam</td> <td><input type="text" size="30" maxlength="30" name="gebruikersnaam" value="<?php print $_POST['gebruikersnaam']?>"></td> </tr> <tr> <td>Wachtwoord</td> <td><input type="text" size="30" maxlength="30" name="wachtwoord" value="<?php print $_POST['wachtwoord']?>"></td> </tr> <tr> <td>searchID (uit eerdere doSearchDMZ call)</td> <td><input type="text" size="40" maxlength="32" name="search_id" value="<?php print $_POST['search_id']?>"></td> </tr> <tr> <td>kvk hash (uit eerdere doSearchDMZ call)</td> <td><input type="text" size="40" maxlength="32" name="kvk_hash" value="<?php print $_POST['kvk_hash']?>"></td> </tr> <tr> <td></td> <td><input type="submit" name="submit" value="Toon Informatie" ></td> </tr> </table> </form> <pre> <!-- Toon de output --> </pre> </div></body> </html>



