WebElektronika

Webszolgáltatás (kliens) készítése .NET környezetben

person access_time 2014.06.30.
Pár nappal korábban készítettünk egy webszolgáltatást, amelyben különböző webmethod-okat publikáltunk ki. Most elkészítjük a klienst, amellyel a webmetódusokat távolról meghívjuk.


Indítsuk el a VS2012-t és hozzunk létre egy új projektet, használjuk a "Console Application" sablont (1. ábra). A projektünk neve : "ConsoleWebServiceKliens1".


1. ábra   Projekt létrehozása
 

Ezután vegyünk fel egy "Service Reference"-t, ahol adjuk meg a webszolgáltatásunk URL elérhetőségét. Fontos, hogy a webszolgáltatásunk fusson, akár localhost-ban, akár egy ASP.NET-es tárhelyen. Ha bemásoljuk a webszolgáltatásunk URL elérhetőségét, kattintsunk a "Go" nyomógombra, ezután egy rövid várakozás után a "webelektronika"osztály webmetódusai megjelennek (2. ábra).

Kattintsunk az "OK" nyomógombra és a névtér nevét (ServiceReference) nem szükséges megváltoztatni.


2. ábra   A ServiceReference felvétele a projektbe
 

A projektünk Solution Explorer ablakát mutatja a 3. ábra, ahol látható az előbb felvett Service Reference (ServiceReference1) és az app.config file is.


3. ábra   Solution Explorer
 

Az app.config file-ban megtaláljuk a webszolgáltatásunk címét, ahol a szolgáltatás elérhető (4. ábra). Szintén itt találjuk a "basicHttpBinding" elemet is, amelyről a WCF-ről szóló bejegyzésben részletesebben lesz szó. Ez a kötés felel a "Http" protokoll használatáért.


4. ábra   App.config file tartalma
 

A következő ábrán (5. ábra) látjuk a Program osztály Main() metódusát, ahol az előbb létrehozott névterünkben megtalálható a "webelektronikaSoapClient" osztály. Ezt a proxyosztályt példányosítjuk "sw" néven.


5. ábra   Main() metódus
 

A példányosítás után az sw objektum különböző metódusait (pl.: Nagybetu()) hívjuk meg. Tekintettel arra, hogy ezek a metódusok string típust adnak vissza, ezért a meghívásuk történhet a Console.WriteLine() metódus segítségével is. Ezáltal az (visszaadott) eredményt megjelenítjük a konzol ablakban (6. ábra).


6. ábra   A kliens futási eredménye
 

Az első futtatásnál könnyen észre vehető az, hogy az eredmények nem rögtön jelennek meg, hanem néhány másodperces késéssel. Ezidő alatt épül ki a kapcsolat a szerver-kliens között. Ekkor a kliens más műveletet nem tud végrehajtani, a grafikus felületünk erre az időre lefagy. Ez azért van, mert a metódusainkat szinkron módon hívtuk meg.