Nell’articolo a questo link abbiamo visto come realizzare un web service utilizzando SOAP su una piattaforma PHP-Based, ora vedremo come facilitare il debugging web service SOAP utilizzando gli strumenti messi a disposizione dall’oggetto SoapClient del PHP5.
Per poter realizzare questo tutorial invito gli interessati a svolgere la precedente guida sulla realizzazione dei web service utilizzando soap.
Partendo dal precedente codice del client andate a modificare le seguenti righe:
1)ABILITAZIONE DEL TRACE
Modificate l’istruzione
$gsearch = new SoapClient('http://URLDELWSDL',array('trace' => 1)); |
con la seguente:
$client= new SoapClient('http://URLDELWSDL',array('trace' => 1)); |
2)RISPOSTA DELL’ULTIMO WEB SERVICE INVOCATO
In questo modo si possono eseguire più web services in sequenza senza avere variabili a cui assegnarli, tanto mediante il metodo __getLastResponse() della classe SoapClient sarà possibile recuperare il risultato dell’ultimo web service invocato che di solito è quello di maggior attenzione.
Per effettuare ciò modificare le righe
$result=$gsearch->getWebUrl('google'); print_r("Stampa del risultato: ".$result." <br>"); |
con le seguenti istruzioni
$client->getWebUrl('google'); print_r("Stampa del risultato: ".$client->__getLastResponse()." <br>"); |
come anticipavo in precedenza possiamo notare che ora la variabile $result non è stata instaziata.
Dopo l’ottimizzazione effettuata sul client esso si presenterà nella seguente maniera:
<?php /** * Client che chiede al Web service l’indirizzo internet di un motore di ricerca. * PHP 5 mette a disposizione l’oggetto SoapClient per definire un client. */ try { $client = new SoapClient('http://localhost/soap/base_server/search_engine.wsdl', array('trace' => 1)); $test_creazione_client = isset($client)? "Client creato con successo!<br>":"Errore: Il Client non è stato creato!<br>"; echo($test_creazione_client); $client->getWebUrl('google'); print_r("Stampa del risultato: ".$client->__getLastResponse()." <br>"); } catch (SoapFault $exception) { print_r($exception); } ?> |