Kezdőlap > .NET, Windows Phone 7 > Webszolgáltatások elérése

Webszolgáltatások elérése

2012. május 8. kedd Hozzászólás Go to comments

Gyakori eset, hogy a telefonról egy külső webszolgáltatást akarunk elérni. A következő példában egy olyan alkalmazást készítünk, amely egy webszolgáltatáson keresztül megmondja a felhasználónak, hogy az általa megadott IP cím melyik országban van. Kezdjük is el!

1. Készítsünk egy Windows Phone 7 alkalmazást!

2. Dobjunk fel a felhasználói felületre egy txtbox-ot, melynek a neve legyen a txtIpAddress, a Text tulajdonsága pedig üres legyen!

3. A Textbox alá helyezzünk egy gombot, a gomb neve legyen btnGetInfo, a contentje pedig legyen az „IP meghatározása”!

image4. Kész a felhasználói felületünk, adjuk hozzá a szolgáltatás referenciáját: a solution Explorer-ben kattintsunk a Refrences-re jobb egérgombbal, és válasszuk ki az Add Service Reference menüpontot!

5. A megjelenő ablakban adjuk meg a webszolgáltatásunk címét (ez most a http://www.webservicex.net/geoipservice.asmx címen érhető el), majd kattintsunk a Go gombra! Az elinduló folyamat néhány másodpercet igénybe vehet. Oldjuk fel az IpService névteret, majd kattintsunk az OK gombra!

image

6. Térjünk vissza a MainPage dizájn nézetéhez, és kattintsunk kétszer a btnGetInfo gombra! A klikk esemény törzsében példányosítsuk a GeoIpServiceSoapClient osztályt! Gyakorlatilag webszolgáltatás elérésénél azt a látsztatot keltjük, hogy ez az osztály helyben szerepel és a metódusai is olyanok, mintha helyi metódusok lennének, miközben ez egy csontváz. Amikor meghívjuk például a GetGeoIpAsync metódust, akkor egy távoli szolgáltatáshívás keletkezik, és ez a metódus egy távoli szerveren fog lefutni. Mivel minden hívás aszinkron, ezért értesíteni kell a felhasználót, hogy az eredmény megérkezett, ezért iratkozunk fel a GetGeoIpCompleted eseményre:

private void btnGet_Click(object sender, RoutedEventArgs e)

{

IpService.GeoIPServiceSoapClient ipClient = new IpService.GeoIPServiceSoapClient();

 

ipClient.GetGeoIPCompleted += new EventHandler<IpService.GetGeoIPCompletedEventArgs>(ipClient_GetGeoIPCompleted);

 

ipClient.GetGeoIPAsync(txtIpAddress.Text);

}

7. A Completed esemény törzsét most egy egyszerű MessageBox-szal látjuk el, ami megjeleníti az IP cím országát (GeoIP osztállyal tér vissza a hívás. További információk is kinyerhetők a visszatérési értékből.).

void ipClient_GetGeoIPCompleted(object sender, IpService.GetGeoIPCompletedEventArgs e)

{

    MessageBox.Show(e.Result.CountryName);

}

8. Indítsuk el az alkalmazást, adjunk meg egy valós IP címet, és nézzük meg, hogy valóban sikerül-e megmondani a szolgáltatásnak, hogy melyik országban található az IP cím!

image

Önnálló feladat: írjunk egy olyan alkalmazást, ami a napi euró, dollár árfolyamokat megmondja. Ehhez használjuk fel a Magyar Nemzeti Bank Árfolyam szolgáltatását! Ez a következő címről érhető el: http://www.mnb.hu/arfolyamok.asmx.

Kategóriák:.NET, Windows Phone 7 Címke: , ,
  1. Még nincs hozzászólás.
  1. No trackbacks yet.

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s

%d blogger ezt kedveli: