di: Angelo Ranucci 20 Giugno 2006
Finalmente possiamo creare la pagina che fruisce del servizio, una pagina in cui possiamo inserire il simbolo del titolo azionario che ci interessa in una TextBox, e che, dopo aver cliccato su un Button, restituisca la quotazione in una Label. Un esempio è il seguente:
Figura 4. Realizzare la pagina per consumare il servizio

La pagina è molto semplice e dobbiamo solo gestire l'evento del click sul bottone. Con un doppio click passiamo alla parte codice interno ed implementiamo il metodo btnOttieniQuotazione_Click. Dobbiamo istanziare un oggetto della classe StockQuote, quindi digitiamo sto. Notiamo che l'intellisense del VWD riconosce il comando e ci propone il nome della classe StockQuote.
Figura 5. Suggerimento dell'intellisense
Possiamo quindi affermare che la classe proxy è stata generata dinamicamente. Utilizzando l'intellisense andiamo avanti nell'implementazione dell'esempio. Il codice completo del metodo per ottenere la quotazione è il seguente:
Listato 1. btnOttieniQuotazione_Click
protected void btnOttieniQuotazione_Click(object sender, EventArgs e)
{
StockQuote ws = new StockQuote();
lblQuotazione.Text = ws.GetQuote(tbSimbolo.Text);
}
Salviamo e testiamo la nostra applicazione.
Mettiamo ad esempio il simbolo GE della General Electric e premiamo il pulsante. Otteniamo:
Figura 6. Consumo del servizio Stock Quote
Nella quotazione che ci ritorna abbiamo molte informazioni che possiamo naturalmente parsare. Possiamo notare da sinistra verso destra: il simbolo, l'ultima quotazione, la data della quotazione, l'ora etc. Per completezza riportiamo lo schema a cui possiamo attingere per parsare la stringa:
Listato 2. Stringa in formato XML
<StockQuotes>
<Stock>
<Symbol>GE</Symbol>
<Last>34.33</Last>
<Date>5/26/2006</Date>
<Time>4:00pm</Time>
<Change>-0.09</Change>
<Open>34.47</Open>
<High>34.53</High>
<Low>34.10</Low>
<Volume>21190100</Volume>
<MktCap>357.0B</MktCap>
<PreviousClose>34.42</PreviousClose>
<PercentageChange>-0.26%</PercentageChange>
<AnnRange>32.21 - 37.13</AnnRange>
<Earns>1.579</Earns>
<P-E>21.80</P-E>
<Name>GEN ELECTRIC CO</Name>
</Stock>
</StockQuotes>
Se avessimo voluto consumare il servizio Web senza generare dinamicamente la classe proxy avremmo dovuto aggiungere una Web Reference al nostro progetto, quindi inserire l'URL del servizio e poi istanziare un oggetto con l'istruzione:
net.webservicex.www.StockQuote ws = new net.webservicex.www.StockQuote();
In definitiva il nostro metodo sarebbe stato:
Listato 3. Metodo senza generazione dinamica della classe proxy
protected void btnGetQuote_Click(object sender, EventArgs e)
{
net.webservicex.www.StockQuote ws = new net.webservicex.www.StockQuote();
lblStockQuote.Text = ws.GetQuote(tbCompanySymbol.Text);
}
Il sorgente dell'esempio sviluppato in questo articolo può essere scaricato da qui.
Guida Windows Azure Code SnippetsLe migliori pratiche per far girare le applicazioni "in the cloud",... |
Guida ASP.NET MVC Best PracticesUn workflow dettagliato e ricco di suggerimenti pratici per... |
Guida ASP.NET Starter KitUn modo semplice per imparare ad utilizzare le tecnologie Microsoft... |
Ogni giovedì, direttamente nella tua e-mail: articoli, guide, tutorial e script ASP, ASP.Net, SQL server e IIS.
Iscriviti alla newsletter
|
|
Corso Progettazione database11 Maggio 2012 a Milano |
|
|
Amministratore di Reti Windows Server 200811 Giugno 2012 a Milano |
|
Nessun corso previsto |