10 Kasım 2011 Perşembe

ASP.Net ile Hava Durumu Alma

Weather.com sitesinin hava durumu servisine Asp.net ile bağlanıp hava durumu bilgilerini nasıl alabileceğinizi anlatıyoruz.

Bu verileri alıp sitenizin tasarım yapısına uyarlamak size kalmış

hava.aspx sayfamız

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="hava.aspx.cs" Inherits="hava" %>

Untitled P
hava.aspx.cs sayfamız

using System;
using System.Data;
using System.Xml;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class hava : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Literal1.Text = havaDurumu("TUXX0014", "10");
//Hava Durumu için oluşturduğumuz fonksyonunda, ilk değer istediğimiz ilin id numarası, yukarıdaki id İstanbul'un.
// İzmir TUXX0015
// Antalya TUXX0004
//İkinci değer ise kaç günlük çekmek istiyorsak, 10 gün için, 10 dedik.
}

private string pid = "burayauyeid";
private string sf = "burayauyesifresi";

private string havaServisi(string a, string b)
{
string url = "http://xml.weather.com/weather/local/" + a + "?cc=*&dayf="
+ b + "&link=xoap&prod=xoap&par=" + pid + "&key=" + sf + "&unit=m";

return url;
}

XmlTextReader veriOku;
private string ry = "http://i.imwx.com/web/common/wxicons/31/";

private string havaDurumu(string a1, string a2)
{
string a = havaServisi(a1,a2);
string b = "";
string s = "";
int t=0;

veriOku = new XmlTextReader(a);
XmlDocument dokuman = new XmlDocument();
dokuman.Load(veriOku);

XmlNode weather = dokuman.SelectSingleNode("/weather");
XmlNodeList icon1 = dokuman.SelectNodes("/weather/cc/icon");
XmlNodeList tmp = dokuman.SelectNodes("/weather/cc/tmp");

s = "Hava
" + tmp.Item(0).InnerText.ToString()
+ " °

";

XmlNodeList icon2 = dokuman.SelectNodes("/weather/dayf/day/part/icon");
XmlNodeList low = dokuman.SelectNodes("/weather/dayf/day/low");
XmlNodeList hi = dokuman.SelectNodes("/weather/dayf/day/hi");

for (int i = 2; i < icon2.Count; i++) { if (i % 2 == 0) { t++; s += kisa(Convert.ToString(DateTime.Now.AddDays(t))) + "
"
+ low.Item(t).InnerText.ToString() + " ° / " + hi.Item(t).InnerText.ToString() + " °

";
}
}

b = Convert.ToString(s);

return b;
}

private string kisa(string a)
{
string b;

b = a.Substring(0, a.IndexOf(" "));

return b;
}
}

0 yorum:

Yorum Gönder