Costruire applicazioni basate su Web Service: il client

di Gianni Nitti, in COM & WebClass,

Nel precedente articolo di questa stessa serie, abbiamo visto come realizzare la parte server del nostro web service.

Resta infine da realizzare la pagina ASP (AccessRemoto.asp) che si troverà sul server A che lancia le richieste al Web Service appena creato sul server B.

Nel codice della pagina AccessRemoto.asp viene creato un oggetto MSSOAP installato col SOAP Toolkit. L'inizializzazione viene effettuata col metodo mssoapinit specificando gli indirizzi dei file WSDL e WSML, il nome del servizio e la porta.

In questo modo abbiamo creato un oggetto proxy che ci permette di utilizzare i metodi dell'oggetto installato sul server B.

Come per magia infatti l'oggetto SoapClient sul server A sarà dotato del metodo rsResult, lo stesso metodo implementato nell'oggetto COM installato sul server B: stiamo utilizzando codice di un altro server!

Sarà poi MSSOAP a costruire per noi il messaggio SOAP e a inviarlo a destinazione.

Il client

In realtà le operazioni fatte internamente dal Soap Toolkit nel corso di questa operazione sono molte e molto complesse ma nel nostro esempio abbiamo scelto il metodo "ad alto livello" per semplificare.

<%

' AccessRemoto.asp

Set SoapClient = Server.CreateObject("MSSOAP.SoapClient")

SoapClient.ClientProperty("ServerHTTPRequest") = True

SoapClient.mssoapinit "http://localhost/listener/AccessService.wsdl","AccessService","DataSoapPort", _
"http://localhost/listener/AccessService.wsml"

risultato = SoapClient.rsResult("SELECT Descrizione FROM tblProdotti")

Set objXml = Server.CreateObject("MSXML2.DOMDocument")

Set rs = Server.CreateObject("ADODB.Recordset")

objXml.loadXML(risultato)

rs.Open objXml

Do while not rs.EOF

 Response.Write(rs("Descrizione"))

 Response.Write("
")

 rs.MoveNext

Loop

Set SoapClient = Nothing

%>

E se il risultato in forma di stringa XML non ci piacesse e vorremmo sfruttare le potenzialità di un oggetto recordset, possiamo crearne uno, utilizzando il metodo open su un oggetto MSXML, dopo aver caricato la stringa XML, come mostrato in questo esempio.

2 pagine in totale: 1 2
Contenuti dell'articolo

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti