Python: effettuare richieste ad un web service in SOAP

SOAP (Simple Object Access Protocol) è un protocollo di comunicazione utilizzato per la trasmissione di messaggi tra applicazioni distribuite su diverse piattaforme. In questo articolo vedremo come inviare una richiesta a un web service in SOAP con Python.

Prima di tutto, è necessario importare la libreria suds-jurko, una libreria Python che consente di accedere ai servizi web basati su SOAP. Questa libreria si può installare utilizzando il seguente comando:


pip install suds-jurko
    

Una volta installata la libreria, il passo successivo è quello di creare un client per il servizio web che si intende utilizzare. Il client viene creato utilizzando la classe Client della libreria suds.client. Il codice per creare il client potrebbe avere un aspetto simile a questo:


from suds.client import Client

url = 'http://www.example.com/MyWebService.asmx?WSDL'
client = Client(url)

Una volta creato il client, possiamo chiamare i metodi del servizio web utilizzando la sintassi client.service.NomeMetodo(). Ad esempio, se il servizio web ha un metodo chiamato Calculate, il codice per chiamare questo metodo potrebbe avere un aspetto simile a questo:


result = client.service.Calculate(2, 3)
print(result)

In questo esempio, il metodo Calculate accetta due parametri interi e restituisce un risultato che viene salvato nella variabile result.

Infine, è importante gestire eventuali eccezioni che potrebbero verificarsi durante la chiamata al servizio web. Ad esempio, potrebbe essere necessario gestire i casi in cui il servizio web non è disponibile o restituisce un errore. Il codice per gestire queste eccezioni potrebbe avere un aspetto simile a questo:


try:
    result = client.service.Calculate(2, 3)
    print(result)
except Exception as e:
    print(e)

In questo esempio, il codice del metodo Calculate viene eseguito all'interno di un blocco try. Se si verifica un'eccezione, viene catturata e gestita all'interno del blocco except.

Torna su