Web Servis Kullanarak Güncel Hava Durumunun Gösterilmesi

Pazar, Kasım 2nd, 2008 @ 20:29

Bu yazıda kısaca, bir windows applicationda, web servisten alınan hava durumu bilgilerinin nasıl gösteriminin yapılabileceğini anlatmaya çalışacağım.

İlk önce boş bir windows application oluşturmamız gerekmekte. Şekildeki gibi Proje ismine “Hava Durumu” diyebilirsiniz.
Yeni Proje Oluştur

Daha sonra oluşturduğumuz projeye aşağıdaki bilgilere sahip bir web servisi eklememiz gerekmekte. Hava durumu dışında, “http://www.webservicex.net” adresinde yaklaşık olarak 30-40 adet ücretsiz web servisi hizmeti bulunmakta. Bunların arasında IP bilgileri, Ülke bilgileri, Birim Çevrimi gibi çok fazla işe yarayan servisler bulunmakta.

URL : “http://www.webservicex.net/globalweather.asmx?wsdl

Web Service Reference Name : “HavaDurumuWebService”

Web Service

Daha sonra aşağıdaki gibi bir ekran görüntüsü hazırlamanız gerekmekte.

Form Tasarımı

Formun “OnLoad” metoduna

private void Form1_Load(object sender, EventArgs e)
{

HavaDurumuWebService.GlobalWeather havaDurumu = new Hava_Durumu.HavaDurumuWebService.GlobalWeather();
string xmlSehirler = havaDurumu.GetCitiesByCountry(“Turkey”);

XmlDocument sehirler = new XmlDocument();
sehirler.LoadXml(xmlSehirler);

XmlNodeList sehirNodes = sehirler.SelectNodes(“//City”);
foreach (XmlNode xNode in sehirNodes)
{

comboBox1.Items.Add(xNode.InnerText);

}

}

Comboboxın SelectedIndexChanged Eventına ise

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
string secilenSehir = comboBox1.SelectedItem.ToString();
HavaDurumuWebService.GlobalWeather havaDurumu = new      Hava_Durumu.HavaDurumuWebService.GlobalWeather();
string xmlHavaDurumu = havaDurumu.GetWeather(secilenSehir, “Turkey”);

XmlDocument xmlHava = new XmlDocument();
xmlHava.LoadXml(xmlHavaDurumu);

XmlNode xTime = xmlHava.SelectSingleNode(“//Time”);
label4.Text = xTime.InnerText;
XmlNode xTemperature = xmlHava.SelectSingleNode(“//Temperature”);
label5.Text = xTemperature.InnerText;
}

kodlarınız yazarsak, programımız aşağıdaki resimlerde görüldüğü şekilde çalışacaktır.

Çalışan Hal

Çalışan Hal 2

Çalışan Hal 3

Programın Source Codunu buradan indirebilirsiniz.

İlişkili Yazılar :

  1. DataTable to XMLDocument
  2. Google Translate Kullanarak .NeT de Dil Çevrimi
  3. Biztalk Error : “Cannot locate document specification because multiple schemas matched the message type” ve Çözümü
  4. Türkiye’deki İller ve ilçeleri
  5. .NeT’de Blok Olarak Seçme
  6. Proxy kullanarak yasaklı sitelere girmek
  7. SQL Connection String (Eng)
  8. XML ve XSLT Dosyalarını İşleyerek Ekrana HTML Çıktısı Veren ASPX Sayfası
  9. XSD Şemasından .NeT Classı Üretmek
  10. C# da Çalışan Uygulamanın Klasörünü Bulma

Tags: , , , , , ,
Posted in .NeT 2008, Bilgisayar | 9 Comments »

Önceki Yazı << Sonraki Yazı >>

9 Responses to “Web Servis Kullanarak Güncel Hava Durumunun Gösterilmesi”

  1. funda diyor ki:

    Kodunuzu çalıştırdığımda
    xmlHava.LoadXml(xmlHavaDurumu);
    satırında “Data at the root level is invalid” hatası alıyorum, bilginize.

  2. Mehmet AYDIN diyor ki:

    kaynaktan gelen veri değişmiş gibi, rootdaki ismi değiştirince sorun düzelir. Sorun devam ederse kontrol edebilirim….

  3. safak diyor ki:

    sivas şehrini şeçtiğim zaman funda arkadaşımızında verdiği gibi hata veriyo.

  4. Mehmet AYDIN diyor ki:

    yazıyı 2008 de yazdığım için, aradan geçen sürede web servisin içeriği değişmiştir. En kısa zamanda konu ile iligli tekrar bir makale yazacağım.

    iyi çalışmalar.

  5. Ali diyor ki:

    Öncelikle makaleniz için teşekkürler.Yalnız birşey sormak istiyorum cevap verirseniz sevinirim.

    Time,Temperature gibi Xml Node’larını nasıl tespit ettiniz wsdl dosyasına bakarak?

  6. Mehmet AYDIN diyor ki:

    wsdl dosyasından tespit ettiğimi söyleyemem. Kodu trace ederken
    xmlHava.LoadXml(xmlHavaDurumu);
    satırıyla oluşan XmlDocument nesnesinden tagları görebilirsiniz. Diğer kullanmak istediğiniz alanları da bu şekilde uygulamaya ekleyebilirsiniz.

  7. Can Aktepe diyor ki:

    İyi hoş güzel yalnız inanılmaz kötü bir web.service sürekli patlıyor… 5 dakikada bir invalid services hatası geliyor.

  8. Can Aktepe diyor ki:

    Line 49: [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://www.webserviceX.NET/GetWeather", RequestNamespace="http://www.webserviceX.NET", ResponseNamespace="http://www.webserviceX.NET", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
    Line 50: public string GetWeather(string CityName, string CountryName) {
    Line 51: object[] results = this.Invoke(“GetWeather”, new object[] {
    Line 52: CityName,
    Line 53: CountryName});

    the operation has time out

  9. Mehmet AYDIN diyor ki:

    devamlı buradan data çekmek yerine günde beş kere çalışan bir kod ile bir yere kaydetip, buradan gösterimi yapmanızı öneririm.

Leave a Reply



Yeni yorumları e-posta aracılığıyla bana bildir. Ayrıca yorum yapmadan da abone olabilirsiniz.