Inviare XML con SoapClient

Invia XML a WSDL con PHP5

Inviare XML con SoapClient

Dopo aver imparato come funzionano Web Services e SOAP in PHP5 ed effettuato un primo test di invio dati ora vedremo come inviare XML con SoapClient dove i dati in formato XML anzichè in formato stringa.

SoapClient seppur molto semplice integra grandi potenzialità come la serializzazione di oggetti XML, utilizzato per gli oggetti basici, la classe SimpleXMLElement.

Inziamo a vedere come inviare XML con SoapClient con PHP5.
Supponiamo che il servizio della WSDL si chiami SearchAccount, instanziero un oggetto di tipo SimpleXMLElement in questo modo:

$xml_send = new SimpleXMLElement("<SearchAccount></SearchAccount>");

Supponendo che poi questo XML contenga i seguenti dati:

<AuthorID>gian</AuthorID>
<UserID>12345678</UserID>
<Status>0</UserPassword>
<SearchField>name</SearchField>

Dove AuthorID, UserID e SearchField sono di tipo stringa mentre Status sia un integer. Aggiungiamo quindi all’oggetto $xml_send i seguenti campi nella seguente maniera.

$xml_send->addChild('AuthorID', "gian");
$xml_send->addChild('UserID', "12345678");
$xml_send->addChild('Status', 0);
$xml_send->addChild('SearchField', "name");

Poi come fatto anche nel debugging web service soap configuriamo la WSDL:

$url = 'WSDL_URL';
$client = new SoapClient($url);

ed invochiamo il metodo in questione, passandogli il clinet WSDL.

$result = $client->SearchAccount($xml_send);
Inviare XML con SoapClient ultima modidfica: 2016-10-22T18:42:12+02:00 da Gianluca Di Vincenzo
Posted in: PHP, SOA

By on 22 Ottobre 2016

Tagged: , , , , , , , ,