HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

WebService használata saját alkalmazásból


Példaprogram letöltése

9111 bájt

Múlt héten készítettünk egy olyan web service-t, mely képes arra, hogy meghatározza azt, hogy egy Magyarországon feladott csomagnak mennyi lesz a postaköltsége. Ehhez csupán a csomag súlyát kellett megadnunk, valamint ha azt utánvéttel szeretnénk feladni, akkor az utánvételi összeget is.
Most egy olyan példát készítünk, melyben azt vizsgáljuk, hogy miként készíthetünk olyan alkalmazást, mely ennek az interneten publikált web service-nek a függvényeit képes meghívni és így számunkra a szükséges értéket szolgáltatni.
A saját alkalmazásunk elkészítésekor igen fontos azt szem előtt tartanunk, hogy egyáltalán nem kell ismernünk a módot, hogy miként is határozható meg a postaköltség. Ennek sem a logikáját, sem az aktuális árakat nem kell tudnia alkalmazásunknak, hiszen ezt a web service szolgáltatja. Alkalmazásunk írásakor egyedüli feladatunk az, hogy miként hívhatjuk meg ezt a web service-t.

A mellékelt példa használatához szükség lesz a múlt héten készített web service alkalmazásra, mely a „WebService készítése: postaköltség meghatározása” című cikk mellékleteként jelent meg.
Nézzük most lépésről-lépésre, hogy miként is jött létre a mellékelt példa.
Nyissunk egy teljesen szokványos Windows Application projektet. Ezen helyezzük el a szükséges beviteli eszközöket, melyeken keresztül a felhasználó közölheti alkalmazásunkkal a csomag utánvételi összegét és súlyát.
A web service használatához a System.Web.Services névtérre szükségünk lesz. Ehhez válasszuk a Project - Add Reference menüpontot a .NET lapon keressük elő ezt és adjuk a projektünkhöz.
Ahhoz, hogy egyszerűen elérhessük ezt a web service-t és felhasználhassuk alkalmazásunkba szükséges, hogy egy ún. proxy objektumot generáltassunk. Ehhez a Visual Studio-hoz mellékelt WSDL.EXE nevű segédprogram használata szükséges. Nyissunk egy parancssort (Visual Studio.NET Command Prompt!) majd írjuk a következőt:
Wsdl http://localhost/Postage/Service1.asmx?WSDL
Értelemszerűen a localhost helyére annak a szervernek a címe kerül, ahol a web service elérhető.
A WSDL futása során generál számunkra egy Service1.cs forráskódot, mely tartalmaz egy olyan objektumot, amelyből példányt létrehozva az adott web service-t használhatjuk úgy mintha az egy egyszerű osztály lenne, amelyet a saját alkalmazásunkban hoztunk létre. A programozás szempontjából a továbbiakban nem is vesszük észre, hogy egy web service függvényét használjuk:
    private void button1_Click(object sender, System.EventArgs e)
    {
      Service1 s1 = new Service1();
      label1.Text = s1.AfterBuyPackagesCost(Convert.ToInt32(textBox1.Text), Convert.ToSingle(textBox2.Text)).ToString() + " Ft";
    }
Amint az látható, egy web service használata igen egyszerű és nagyon hatékony feladat.
Végezetül pillantsunk bele a létrejött Service1.cs forráskódba.
A létrehozott osztály konstruktorában kerül átadásra a web service elérési útvonala. Ezt szükség esetén módosíthatjuk is.
    public Service1() {
        this.Url = "http://localhost/PostageSetup/Service1.asmx";
    }
Az AfterBuyPackagesCost meghívásakor kerül aktivizálásra a web service megfelelő függvénye, majd a visszaadott érték is konvertálva lesz a számunkra szükséges formára. Amint látható a Service1.cs-ben létrejött AfterBuyPackagesCost függvény paraméter listája épp úgy egyezik a web service-ben létrehozott azonos nevű függvénnyel, mint annak visszatérési értéke. Így a felhasználás szempontjából valóban nincs különbség a két függvény hívása között.
    public int AfterBuyPackagesCost(int Value, System.Single Weight) {
        object[] results = this.Invoke("AfterBuyPackagesCost", new object[] {
                    Value,
                    Weight});
        return ((int)(results[0]));
    }

Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2002 évkönyv 175. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |