Attendi ...

Un client SOAP PHP con NuSOAP

Lavorando con PHP esistono diversi modi di implementare un web service. Abbiamo a disposizione l'estensione SOAP standard, che è probabilmente la scelta migliore se possiamo configurare Apache come vogliamo, in modo da abilitare l'estensione sul modulo PHP di Apache. Questo scenario d'uso è ben documentato sul web quindi eviteremo di ripeterlo qui. Preferiamo invece introdurre una scelta leggera, possibile grazie alla libreria NuSOAP, che presenta il vantaggio di poter essere usata “al volo”, senza toccare la configurazione né di Apache né di PHP. Chi non conoscesse i servizi SOAP o fosse digiuno di web services, puoi dare un'occhiata a questo articolo prima di proseguire.

Configurazione

Per utilizzare NuSOAP è sufficiente scaricare la libreria e copiarla direttamente tra le cartelle del nostro sito, in modo che sia accessibile mediante la direttiva PHP include o require_once.

Lato server

Dopo aver verificato di raggiungere la libreria NuSOAP possiamo creare una pagina PHP che contenga il codice del web service vero e proprio, che potrebbe essere un semplice HelloWorld

<?php

require_once("../nusoap-0.9.5/lib/nusoap.php");

$server = new soap_server();

$server->configureWSDL('hellowsdl', 'tns:hellowsdl');

$server->register('hello',

array('name' => 'xsd:string'),

array('return' => 'xsd:string'),

'tns:hellowsdl',

'tns:hellowsdl#hello',

'rpc',

'encoded',

'Returns hello name'

);

function hello($name) { return 'Hello, ' . $name.' !!!'; }

$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';

$server->service($HTTP_RAW_POST_DATA);

?>

il codice dovrebbe essere abbastanza chiaro e si commenta da sé. Notiano il riferimento al file nusoap.php che include la libreria NuSOAP, e l'uso del comando configureWSDL che si occupa di servire il documento WSDL quando interroghiamo l'URL del web service (che a rigore si chiama endpoint), ad esempio

http://localhost/soap/server/hellowsdl.php

Lato client

Il codice di un client che consuma il servizio HelloWorld potrebbe essere

<?php

require_once("nusoap-0.9.5/lib/nusoap.php");

$client = new nusoap_client('http://localhost/soap/server/hellowsdl.php?wsdl', true);

$err = $client->getError();

if ($err) echo '<h2>Constructor error</h2><pre>'.$err.'</pre>';

$result = $client->call('hello', array('name' => 'Pippo'));

if ($client->fault) {

// Manage error

}

echo '<h2>Request</h2>';

echo '<pre>'.htmlspecialchars($client->request, ENT_QUOTES).'</pre>';

echo '<h2>Response</h2>';

echo '<pre>'.htmlspecialchars($client->response, ENT_QUOTES).'</pre>';

echo '<h2>Debug</h2>';

echo '<pre>'.htmlspecialchars($client->debug_str, ENT_QUOTES).'</pre>';

?>

anche qui includiamo il file nusoap.php, come nel server. Portiamo l'attenzione sui seguenti passaggi

  • La chiamata vera e propria è $client->call(...) , dove vengono passati anche i parametri della request SOAP: nell'esempio qui sopra viene passato il parametro name con valore Pippo
  • La documentazione ufficiale di NuSOAP suggerisce di usare il costruttore soapclient per creare l'oggetto $client: qui preferiamo usare nusoap_client (che è un alias dello stesso costruttore) per evitare ambiguità nel caso della presenza di altre estensioni SOAP. Per chiarimenti basta dare un'occhiata alla fine del file nusoap.php
  • Nel caso di connessione https con certificato Self-Signed, il codice qui sopra dovrebbe funzionare subito (a patto ovviamente di specificare l'endpoint corretto): questo perché NuSOAP si occupa, in modo trasparente all'utente, di richiedere il certificato e aprire la connessione https
Pubblicato il Aggiornato il

Ti potrebbero interessare

Hosting Condiviso VPS Cloud WordPress

Hosting condiviso, VPS o Cloud: quando WordPress deve crescere

Un sito WordPress può iniziare la propria attività su un normale piano di hosting condiviso e funzionare correttamente per molto tempo. Con l'aumento del traffico, dei contenuti, dei plugin o delle funzionalità, però, le esigenze tecniche possono cambiare.

Un sito aziendale che inizialmente pubblicava poche pagine può diventare un portale ricco di ...

13.07.2026
Dettagli

Come proteggere WordPress da attacchi automatici

Proteggere WordPress dagli attacchi automatici: perché è importante

WordPress è una delle piattaforme più utilizzate al mondo per realizzare siti web, blog aziendali ed eCommerce. Proprio per questa diffusione, è anche uno dei bersagli più frequenti di bot automatici, tentativi di login, scansioni alla ricerca di vulnerabilità, malware e attacchi contro plugin non aggiornati.

Molti attacchi non sono mirati ...

06.07.2026
Dettagli

Hosting WordPress Italia vs Estero

Hosting WordPress in Italia vs estero: perché la scelta conta

Quando si sceglie un servizio di hosting WordPress, il prezzo è spesso il primo elemento preso in considerazione. Tuttavia, per un sito aziendale, un eCommerce o un progetto professionale, la posizione dell'infrastruttura può incidere su aspetti molto concreti: prestazioni, latenza, supporto tecnico, sicurezza, GDPR e gestione operativa.

La domanda quindi ...

29.06.2026
Dettagli