WebElektronika

Kliens készítése a JSON-t használó host-hoz

person access_time 2015.12.18.
Korábban bemutatásra került egy host megvalósítása, amely JSON-t használ. Ideje volt tehát elkészíteni ehhez egy klienst is.


Korábban bemutattunk egy host alkalmazást, amely JSON-t használ. Most ehhez a szolgáltatáshoz készítünk el egy klienst.

A host-nál kipublikáltunk egy alkalmazást, amely az adatokat szérializálja. A kliensnél az a feladatunk, hogy a sorosított adatokat visszaszérializáljuk.

Indítsuk el a VS2012-t és hozzunk létre egy projektet (1. ábra).

kep
1. ábra   Projekt létrehozása
 

Ezután adjunk hozzá a projekthez egy osztályt, amelynek a neve legyen : "jarmu". Ezt követően adjuk hozzá a Newtonsoft dll-ét (2. ábra).

kep
2. ábra   A Newtonsoft dll hozzáadása
 

A harmadik ábrán látható a projektünknek a Solution Explorer-e.

kep
3. ábra   Solution Explorer
 

Adjuk hozzá a projektünkhöz a használni kívánt webszolgáltatásunk URL-jét, tehát reisztráljuk be a webszolgáltatást (4. ábra).

kep
4. ábra   A webszolgáltatás hozzáadása a projekthez
 

A jarmu nevű osztályban vegyük fel a következő tulajdonságokat :

namespace ConsoleKliensJSON1
{
    public class jarmu
    {
        public string Gyarto { get; set; }
        public string Modell { get; set; }
        public string Kivitel { get; set; }
        public string Szin { get; set; }
        public bool isSerult { get; set; }
        public int GyartasEv { get; set; }
    }
}

 

Ezután egésztsük ki a Main metódusunkat a következőek szerint :

static void Main(string[] args)
        {
            ServiceReference1.peldaSoapClient sp = 
                new ServiceReference1.peldaSoapClient();
            try
            {
                string adat = sp.getAutok();
                JToken.Parse(adat);

                List<jarmu> kocsi = JsonConvert.DeserializeObject<List<jarmu>>(adat);

                Console.WriteLine("Autók száma : " + kocsi.Count());

                jarmu c1 = kocsi[1];
                Console.WriteLine(c1.Modell+", "+c1.GyartasEv);

                Console.WriteLine("OKÉ");
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }

            Console.ReadLine();
        }

 

Először a webszolgáltatásunk névterében található "peldaSoapClient" osztályt példányosítjuk "sp" néven, majd a kivételkezelés blokkban az "adat" stringben eltároljuk a lekért, sorosított autóadatokat.
Ezután parsolást hajtunk végre, amely, ha nem sikeres, akkor kivételdobás történik. Sikeres parsolásnál, tehát megfelelel a JSON szabványnak a lekért adat, akkor létrehozzuk a "kocsi" nevű listánkat.
Ebben a listában a lekért és visszaszérializált adatok (jelen esetben a különböző autók adatai) találhatók meg.

Indítsuk most el debug módban a programunkat. Sajnos hibát jelez a fejlesztőszoftverünk, nem fog elindulni az alkalmazásunk. A megoldás az, hogy nem a .NET4-es keretkörnyezetet kell használnunk, hanem a 4.5.2-es verziójút (5. ábra).

kep
5. ábra   A használt .NET keretkörnyezet megváltoztatása
 

Indítsuk el újra debug módban az alkalmazásunkat. Ha a host szolgáltatásunk működik, akkor kiírjuk a konzolra a lista első elemének a modellnevét, illetve annak a gyártási évét, majd a következő sorban az "OKÉ"-t. Az Enter leütése után kilépünk a programból.

kep
6. ábra   A futási eredmény