A
B
C
Ç
D
E
F
G
Ğ
H
I
İ
J
K
L
M
N
O
P
R
S
Ş
T
U
Ü
V
Y
Z
Q
W
X
+ Ekle
VS.NET ile XML Web Servislerini Kullanmak

VS.NET ile XML Web Servislerini Kullanmak

Bu makalede, basit bir Web servisinin Web sitesinden çağrılması ele alınmaktadır. Web Servisinin veritabanı erişimli verileri sunmasını da örneklendireceğiz. Ayrıca, Web servisi örneklerinin yegane konusu, T.C. Kimlik numaralarını doğrulayan Web servisinin kullanımına da göz atacağız. Uygulama araç ve ortamları olarak, VS.Net 2003 ve Sql Server .

Giriş

İlk önce çok basit olarak iki sayının toplamını döndüren bir web servisi yazalım. Bunun için bir Web Servisi projesi oluşturalım ve toplanacak iki sayıyı parametre olarak alıp toplamı dönderen kodu yazalım. Kod aşağıdaki gibi olacaktır.

[WebMethod]
public int Toplam( int a, int b)
{
return (a+b);
}

Bunun sonucunu ise hemen kodumuzu çalıştırıp XML verisini görebiliriz. Ben çalıştırırken 3 ve 5 değerlerini verdim.

<? xml version="1.0" encoding="utf-8" ?>





< int xmlns =" http://tempuri.org/ "> 8 </ int >

şimdi yazdığımız bu basit servisi web sitemize ekleyelim. Bunun için yeni bir ASP.Net web projesi oluşturalım. Ben çok basit olarak iki textbox, sonucu görüntülemek için bir label ve bunları göndermek için bir buton ekliyorum. Textbox ların ismini tbDeger1 ve tbDeger2, label ismini lblSonuc olarak ve buton ismini ise btGonder olarak ayarladım. şimdi sıra istediğim web servisinin sayfama eklenmesine geldi. Bunun için

Solution Explorer > References"ı sağ tıklayıp Add Web Reference veya Project> Add Web Reference demek gerekir.




Şekil–1: Web Referans aramak

Karşıma çıkan pencerede “Web services on the local machine”
seçeneğini seçiyorum. Çıkan yeni pencerede ise oluşturup Toplam ismini
verdiğim web servisini seçiyorum. Burada sol tarafta servis isimleri ve
sağ tarafta ise URL leri bulunmakta. Servisimin ismini değiştirmediğim
için sağ taraftaki URL den bulmam daha kolay olacaktır. Seçtikten sonra
karşıma şu şekilde bir pencere gelecektir.



şekil-2: Web Referans eklemek

Burada sağ taraftan “Web reference name” imi “ToplamServ” olarak
verip ve “Add Reference” butonuna basıyorum ve yazmış olduğum web
servisi sayfama eklenmiş oluyor.

Sırada bu servisin kod ile çağrılması var. Olaylar “Gönder” butonuna
basmışımda olacağı için butona çift tıklıyorum ve kodu yazmaya
başlıyorum.

Kod kısmında ilk yapmam gereken şey kodun başına referansını
eklediğim web servisinin sistem uzayının eklenmesi.Bunun için using
yazdıktan sonra <Ctrl+Space> basarak hangi kısmı ekleyeceğimizi
görebiliriz.(Burada ilk kısım siteye verilen isimdir.)

using ToplamWS.ToplamServ;

kısmınıda sayfanın başına ekliyorum. Butona tıkladığımda olacak olaylar içinse yazılacak kod parçası şu şekilde olacaktır.

private void btGonder_Click( object sender, System.EventArgs e)
{
ToplamServ.Service1 topla = new ToplamServ.Service1();
int Deger1 = Int32.Parse(tbDeger1.Text);
int Deger2 = Int32.Parse(tbDeger2.Text);
lblSonuc.Text = topla.Toplam(Deger1,Deger2).ToString();
}

Burada ilk önce benim web servisim olan ToplamServ ‘ imden topla
isminde yeni bir nesne oluşturdum. Daha sonra ise “topla” ismiyle web
servisimin “Toplam” metodunu çağırdım. Metodumun parametreleri integer
ı kabul ettiği için aradaki integer-string dönüştürmelerini yaptım. Web
sayfasını çalıştırıp sonucu görebiliriz.

Bir Web Servisine Veritabanı Erişimi Sağlatmak

şimdi de veritabanımızdan kayıt çeken bir kod parçasını web
servisine yazalım. Bunun için yeni bir Web Servisi projesi oluşturalım.
Burada da sql veritabanı erişimi için gerekli sistem uzayını kodun
başına ekliyorum. Bu metodu, herhangi bir metoddan ayıran tek nokta,
başındaki [WebMethod] niteliği.

using System.Data.SqlClient

Daha sonra istediğim bir veriyi çekebilmek için aşağıdaki kod parçasını ekliyorum.

[WebMethod]
public DataSet VeriGetir( string getNum)
{
SqlDataAdapter sda = new SqlDataAdapter
("select ProductName,UnitPrice,UnitsInStock from Products WHERE
ProductID="+getNum,"Data Source=(local);
Initial Catalog=Northwind;Integrated Security=SSPI");
DataSet ds = new DataSet();
sda.Fill(ds,"Product");
return ds;
}

Dikkat edeceğiniz gibi burada NorthWind veritabanını kullandım ve
dön derdiği değer dataset olduğu için metodum DataSet özelliğinde.

Bu servisim için yeni bir web projesi oluşturuyorum. Yine aynı
şekilde web referansımı ekliyorum. Sayfama bir textbox, bir buton ve
bir DataGrid ekledim. Kodun başına yine referansıma ait sistem uzay
adını ekliyorum. Kod kısmında buton tıklama olayına ise

private void Button1_Click( object sender, System.EventArgs e)
{
localhost.Service1 lc = new Service1();
DataGrid1.DataSource = lc.VeriGetir(TextBox1.Text); DataGrid1.DataBind();


}

Kodu çalıştırıp buradada sonucu görebiliriz.



şekil-3: Örnek Web Servisi kullanan istemci uygulama sonucu

Gerçek Bir Web Servisi İçin İstemci Yazmak

Artık web servisinin yaptığımız web sayfasından kullanılmasında bir
fikir sahibi olmuş isek kullanylabilecek bir uygulama yapabiliriz.
Bunun için Nüfus,Vatandaşlık İşleri Genel Müdürlüğünün kimlik
numaralarını sorgulayan web servisini kullanabiliriz.

Yine bir web projesi oluşturalım. Yine web referansımı eklemek için
aynı yolları izliyorum. Açılan Add Web Reference penceresinde URL
kısmına http://tckimlik.nvi.gov.tr
adresinden aldığımız http://tckimlik.nvi.gov.tr/kpspublic.asmx?WSDL adresini yazıyoruz. Go tuşuna basıyoruz ve Add Reference tuşuna basarak web servisini ekliyoruz.

Bu örnekte kısa olması bakımından sadece kimlik numarası doğrulama kısmını kullanacağız. Bunun için dizayn kısmında.sayfama kimlik numaralarını yazmak için bir textbox, bir buton ve kimlik numarasından dönen değerleri sayfaya basabilmek için isim, soy isim, doğum tarihi için üç tane label kullanıyoruz. Gelelim kod kısmına.

Yine ilk başta eklediğim web referansımın sistem uzay adını “using” kısmı ile yazıyorum. Burada bu adı bilmesekte <Ctrl+Space> tuşları bize yardımcı oluyor. Buton tıklanması olayında ise yazacağımız kod parçası şu şekilde olacaktır.

using TCKimlikGetir.tr.gov.nvi.tckimlik;

Burada TCKimlikGetir benim sayfaya verdigim isim.

private void Button1_Click( object sender, System.EventArgs e)
{
tr.gov.nvi.tckimlik.KPSPublicWebService kimlik = new KPSPublicWebService();
tr.gov.nvi.tckimlik.TCKimlikNoDogrulamaSonucu kb = new TCKimlikNoDogrulamaSonucu();
kb = kimlik.TCKimlikNoDogrula(Int64.Parse(TextBox1.Text));
lblAd.Text = kb.Ad;
lblSoyad.Text = kb.Soyad;
lblDTarihi.Text = (kb.DogumYil).ToString();
}


Burada önce servisi kullanabilmek için yeni bir “kimlik” nesnesi oluşturuyorum. Daha sonra dönen sonuçlarımı alabilmek için TCKimlikDogrulamaSonucu metodundan yeni bir “kb” nesnesi oluşturuyorum. En sonda ise TCKimlikNoDogrula metoduna gerekli kimlik numarası parametresini gönderiyorum ve sonuçları label lara atıyorum.

Sonuç Herhangi bir metodu, web metodu olarak platformlar arası kullanıma


  • diline pelesenk olmak ne demek
  • dillere pelesenk olmuş ne demek
  • pelesenk
  • pelesenk ne demek
  • Pelesenk Ne Demek – Pelesenk Sözlük Anlamı
  • pelesenk olmak ne demek
  • pelesenk olmak ne demektir
  • pelesenk olmuş ne demek
  • Yüksek Yüksek Tepelere sözleri
  •   Ad Soyad
      Yorum