<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>diploD &#187; esempio</title>
	<atom:link href="http://www.diplod.it/tag/esempio/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.diplod.it</link>
	<description>by Davide Del Monte</description>
	<lastBuildDate>Fri, 13 Feb 2015 14:26:10 +0000</lastBuildDate>
	<language>it-IT</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=3.9.40</generator>
	<item>
		<title>Chiamare e consumare un web service da una pagina aspx con C#</title>
		<link>http://www.diplod.it/2010/12/21/chiamare-e-consumare-un-web-service-da-una-pagina-aspx-con-c/</link>
		<comments>http://www.diplod.it/2010/12/21/chiamare-e-consumare-un-web-service-da-una-pagina-aspx-con-c/#comments</comments>
		<pubDate>Tue, 21 Dec 2010 11:41:40 +0000</pubDate>
		<dc:creator><![CDATA[Davide]]></dc:creator>
				<category><![CDATA[Applicazioni Web]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[esempio]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[web service]]></category>

		<guid isPermaLink="false">http://www.diplod.it/?p=1166</guid>
		<description><![CDATA[Un esempio pratico per interrogare un web service remoto e restituire il risultato su una pagina aspx scritta in C# con Visual Studio.]]></description>
				<content:encoded><![CDATA[<p>Cosa sono i <strong>web service</strong> e perchè possono essere davvero <strong>utili </strong>lo lascio raccontare ad altri:</p>
<ul>
<li><a href="http://it.wikipedia.org/wiki/Web_service" target="_blank">Web Service su Wikipedia</a></li>
<li><a href="http://server.html.it/guide/leggi/100/guida-web-service/" target="_blank">Guida Web Service</a></li>
</ul>
<p>L&#8217;obiettivo di questo articolo è fissare un <strong>esempio pratico</strong> per interrogare un web service e sfruttare i risultati che restituisce utilizzando <strong>C# e Visual Studio</strong>.</p>
<p>Supponiamo di dover accedere al webservice di esempio su W3C, descritto a questa pagina: http://www.w3schools.com/webservices/tempconvert.asmx<br />
La descrizione del servizio è fornita a questo URL:  http://www.w3schools.com/webservices/tempconvert.asmx</p>
<p>Il servizio ha 2 metodi  - <em>FahrenheitToCelsius()</em> e <em>CelsiusToFahrenheit() </em>- che accettano entrambi un solo parametro di input e convertono la temperatura da gradi fahrenhait a Celsius e viceversa.</p>
<p>La risposta del server è un XML di questo tipo:<br />
<code>&lt;?xml version="1.0" encoding="utf-8" ?&gt;&lt;string xmlns="http://tempuri.org/"&gt;38&lt;/string&gt;</code></p>
<p><span id="more-1166"></span>Su Visual Studio, cliccando sul nome del progetto web col tasto destro, si apre un menu dove è possibile aggiungere una <em>Web Reference</em>.</p>
<p><a href="http://www.diplod.it/wp-content/uploads/2010/12/ws1.png"><img class="alignnone size-large wp-image-1168" title="ws1" src="http://www.diplod.it/wp-content/uploads/2010/12/ws1-1024x640.png" alt="" width="800" height="580" /></a></p>
<p>Qui si inserisce l’indirizzo della descrizione WSDL del web service.</p>
<p><a href="http://www.diplod.it/wp-content/uploads/2010/12/ws2.png"><img class="alignnone size-full wp-image-1169" title="ws2" src="http://www.diplod.it/wp-content/uploads/2010/12/ws2.png" alt="" width="825" height="571" /></a></p>
<p>Il software identifica l’interfaccia del servizio web, con i metodi che mette a disposizione.<br />
Per aggiungerlo al progetto si clicca sul tasto Add Reference. Fatto questo ci troveremo l&#8217;oggetto nel Solution Explorer.</p>
<p><a href="http://www.diplod.it/wp-content/uploads/2010/12/ws3.png"><img class="alignnone size-full wp-image-1170" title="ws3" src="http://www.diplod.it/wp-content/uploads/2010/12/ws3.png" alt="" width="380" height="284" /></a></p>
<p>Ora nel codice della pagina aspx su cui vogliamo consumare il web service è necessario aggiungere il riferimento con questo codice:<br />
<code>using com.w3schools.www;</code></p>
<p><a href="http://www.diplod.it/wp-content/uploads/2010/12/ws4.png"><img class="alignnone size-full wp-image-1171" title="ws4" src="http://www.diplod.it/wp-content/uploads/2010/12/ws4.png" alt="" width="800" height="320" /></a></p>
<p>Ora dichiariamo un oggetto per la web reference, che sarà possibile utilizzare con tutti i sui metodi come qualsiasi altro oggetto:</p>
<p><code>com.w3schools.www.TempConvert MyProxy = new com.w3schools.www.TempConvert();</code></p>
<p><a href="http://www.diplod.it/wp-content/uploads/2010/12/ws5.png"><img class="alignnone size-full wp-image-1172" title="ws5" src="http://www.diplod.it/wp-content/uploads/2010/12/ws5.png" alt="" width="633" height="331" /></a></p>
<p>L’esempio finale completo potrebbe essere una pagine con una textbox che nella quale l’utente scrive la temperatura, un bottone di invio invoca il webservice e il risultato appare in una label. In questo caso il codice della classe sarebbe il seguente:<br />
<code><br />
using System;<br />
using System.Collections.Generic;<br />
using System.Linq;<br />
using System.Web;<br />
using System.Web.UI;<br />
using System.Web.UI.WebControls;<br />
using com.w3schools.www;<br />
public partial class _Default : System.Web.UI.Page{<br />
com.w3schools.www.TempConvert MyProxy = new com.w3schools.www.TempConvert();<br />
protected void Page_Load(object sender, EventArgs e)    { }<br />
protected void Button1_Click(object sender, EventArgs e)    {<br />
Label1.Text = MyProxy.CelsiusToFahrenheit(TextBox1.Text);<br />
}<br />
}<br />
</code></p>
<p>Mentre il codice della pagina il seguente:<br />
<code><br />
&lt;%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %&gt;<br />
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;<br />
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;<br />
&lt;head runat="server"&gt;<br />
&lt;title&gt;&lt;/title&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&lt;form id="form1" runat="server"&gt;<br />
&lt;div&gt;<br />
&lt;asp:TextBox ID="TextBox1" runat="server"&gt;&lt;/asp:TextBox&gt;&amp;nbsp;&lt;asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" /&gt;&lt;br /&gt;<br />
&lt;asp:Label ID="Label1" runat="server" Text="Label"&gt;&lt;/asp:Label&gt;<br />
&lt;/div&gt;<br />
&lt;/form&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;<br />
</code></p>
<p>E ora non resta che sbizzarrirsi, una volta imparato <strong>il mestiere va affinato</strong>.</p>
<p>Lascio qualche link per chi i web service li vuole anche costruire:</p>
<ul>
<li><a href="http://www.codeproject.com/KB/java/Invoke_Java_WS_In_CS.aspx" target="_blank">How to create and invoke Java web service</a></li>
<li><a href="http://www.codeproject.com/KB/webservices/myservice.aspx" target="_blank">Your first C# Web Service</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.diplod.it/2010/12/21/chiamare-e-consumare-un-web-service-da-una-pagina-aspx-con-c/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
