Bu yazımda elimden geldiğince Web Service (Web Servis) konusuna değinmeye çalışacağım. Öncelikle web servis nedir sorusunun cevabını kendimce vermeye çalışayım. Çeşitli uygulamalar geliştiren bir firma olduğunuzu kabul edelim. Projelerinizde sık sık kullandığınız yapılar var örneğin, seçilen şehire göre ilçeleri listeleme veya döviz kurlarını gösterme gibi.. Biraz daha geniş düşünürsek, birden fazla uygulamada kullandığımız sanal posları tek bir merkezde toplayıp, istediğimiz uygulamadan veri gönderip işlemlerimizi gerçekleştirebiliriz. Servislerin bir güzelliği de, php, klasik asp, jsp, java vb.. dillerlede çok rahat bir şekilde kullanılması. Ne kadar yazarsam yazayım web servisin nimetlerini uygulamadan görmemiz imkansız. Öncelikle burada ve şurada ki makalelere göz atmanızda fayda var.
Visual Studio 2008′ i çalıştırıp, File / New Project / ASP.NET Web Service
Application‘ a tıklayıp yeni projemizi oluşturuyoruz.
Karşımıza ilk gelen ekran şu şekilde olacaktır.
Hiç birşey yapmadan projemizi çalıştırıp örneğimizi gözlemliyoruz. (F5) Gördüğünüz gibi karşınıza HelloWorld adındaki işlemimiz geldi. Sayfadaki tasarımıda biz yapmadık otomatik geldi.
HelloWorld işlemine tıkladığımızda Çağır adındaki butonu görüyoruz, alt satırlarda gerekli açıklamalar yer alıyor.
Çağır butonuna tıkladığımızda, karşımıza xml şeklide bir veri geliyor. Hello World değişkeni string olduğu için string olarak geri döndü.
Gördüğünüz gibi çok basit bir yapı. Hemen kendimize bir işlem yazalım ve bilgimizi pekiştirelim. Projemize geri dönüyoruz ve HelloWord un altına yazmaya başlıyoruz. İşlemimiz ad ve soyad kontrolü yapıp geriye bool (true, false) bir değer döndürsün.
[WebMethod]
public bool ilkServisimiz(string ad, string soyad)
{
bool geriDonecekDeger;
if (ad == "ali" && soyad == "veli")
{
geriDonecekDeger = true;
}
else
{
geriDonecekDeger = false;
}
return geriDonecekDeger;
}
//gördünüz gibi klasik c# dan hiç bir fark bulunmuyor.
//servisde görüntülenecek işlemin kodlarının başına [WebMethod] eklememiz yeterli.
Bu basit yapıda ad ve soyad adında iki stringi alıp kontrol ediyoruz. Eğer istediğimiz bilgiler gelirse true değilse false döndürüyoruz. Projemizi hemen çalıştırıyoruz. HelloWorld şleminin altında ilkServisimiz adındaki işlemi görmüş olmamız gerekiyor. Tıklayıp çalıştırdığımızda bizden ad ve soyad değişkenlerini isteyen bir form görüntüleniyor. ali veli yazıp çağır dediğimizde sonuç true olarak, aksi durumda false olarak dönüyor. İlk servisimiz hayırlı uğurlu olsun :)
Şimdi web servis uygulamamızı web sayfalarımızda nasıl kullanacağımıza bakalım. Hemen Visual Studio 2008 den File / New Web Site diyoruz. Default.aspx sayfamızın içine hemen aşağıdaki gibi basit bir form koyuyoruz.
Ad <asp:TextBox ID="txtad" runat="server"></asp:TextBox> <br /> Soyad <asp:TextBox ID="txtsoyad" runat="server"></asp:TextBox> <br /> <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Gönder" /> <br /> <asp:Label runat="server" ID="lblmesaj" ForeColor="Red"></asp:Label>
Şimdi gelelim web servisimizi web sayfamızda kullanmak için gerekli adımlara. Solution Explorer dan sağ tuş tıklayıp Add Web Reference diyoruz.

Açılan pencereye oluşturduğumuz web servisin adresini girip Go diyoruz. Karşımıza işlemlerimiz geliyor ve ilkServisimiz adlı işleme tıklıyoruz.

Görüldüğü gibi web servis projemizi çalıştırdığımızdaki ekranlar ile birebir aynı bir arayüz geliyor karşımıza. Web reference name kısmında referans için bir isim giriyoruz. Ben ebreferansim diye giriyorum ve Add Reference ye tıklayıp projeme dahil ediyorum.

Solution Explore baktığımızda APP_WebReferences klasörünün altına gerekli dosyaların geldiğini görüyoruz. Aynı projede birden fazla web servis kullanmamız mümkün.

Default.aspx.cs dosyamıza gidip kodlarımızı yazmaya başlıyoruz. Unutmadan kodlarımızı oluşturduğumuz formdaki butonun onclick özelliğine yazıyoruz.
protected void Button1_Click(object sender, EventArgs e)
{
// servis adındaki nesnemizi oluşturuyoruz.
webreferansim.Service1 servis = new webreferansim.Service1();
//hemen servisimiz içindeki kodları hatırlayalım
//---------------------------------------------------
//[WebMethod]
//public bool ilkServisimiz(string ad,string soyad) {}
//aşşağıdaki satırda, ad ve soyad değişkenlerini aynen methodumuza gönderiyoruz.
bool servistenGeriDonenDeger = servis.ilkServisimiz(txtad.Text, txtsoyad.Text);
//dönen değeri ekrana yazdırıyoruz.
Response.Write("Geri dönen değerimiz: <strong>" + servistenGeriDonenDeger + "</strong>");
//pekiştirmek için basit bir if bloğu
if (servistenGeriDonenDeger)
{
lblmesaj.Text = "Bilgiler doğru !";
}
else
{
lblmesaj.Text = "Bilgiler yanlış !";
}
}
İşte bu kadar gördüğünüz gibi .net ortamında web servis hazırlama ve kullanma işi gerçekten çok basit. Unutmadan burada incelemeye değer çokça servis bulunuyor. Umarım faydalı bir yazı olmuştur, hoşçakalın.





web servisleri konusunda güzel bir referans olmuş, özellikle resimli anlatım sayesinde yeni başlayanlar için de kolaylıkla uygulama şansı veriyor.
Faydalı bir bilgi ve ihtiyacım olabilecek bir konuyu şu anda öğrendim. Anlatımınız içün teşekkürler.
Basit ama gerçek…Teşekkürler…
Çok teşekkür ederim, ilk servisimi yaptım:D cok işime yaradı .. futbolmerkezinden haftanın maclarını cekmek istiyorum gosterdiginiz yontemle ama zorlandım.. yardımcı olursanız sevinirim ..
Rica ederim, işinize yaradıysa ne mutlu, fakat bahsettiğiniz konu ile web servisin alakasını kuramadım. Farklı bir siteden veri çekmek için farklı yöntemler kullanmanız gerekir. Yazdığınız mail adresine size yardımcı olacak bir arkadaşımın iletişim bilgilerini yolluyorum. Kolay gelsin..
Teşekkürler, böyle özet bir bilgiye ihtiyacım vardı, çok faydası oldu.
teşkkler güsel bilgi sitenz çok iyi
tskler cok faydalı bılgıler.bır sey soracagım forum ve portal sıtelerı yapıyormusunuz.bu konada mailinizi beklıyecegım.
vb.net ve web servis kullanarak tc kimlik doğrulaması yapmak ile ilgili bilgi yada bir örnek verebilirmisiniz?
Önemli Not:
Mernisten tc kimlik doğrulaması, yapılan yeni değişiklik sonucunda statik IP adresi kullanılarak yapılıyor. ve statik IP kullanıcısına kullanıcı adı ve parola verilerek yapılıyor
Buna göre hazırlanacak kodlarım nasıl olmalı ??
@sukru ergül malesef yapmıyorum.
@İsmail ALTIN tc kimlik doğrulaması üzerine daha önceden hiç çalışma yapmadığımdan konuyu tam olarak bilemiyorum. Ama tc kimlik numarasının basit bir algoritması bulunuyor http://www.kodaman.org/yazi/t-c-kimlik-no-algoritmasi burada arkadaş anlatmış.
TC Kimlik dogrulama web service adresi
http://tckimlik.nvi.gov.tr/Service/KPSPublic.asmx
çok Güzel olmuş
Serkan bey göndermiş oldugunuz web servisi dosyasını inceledim.
kullanıcının gireceği ad soyad ve dogum yılına göre sorgu yapıyor.
peki bunun javascript ile consume yani client tarafını da gönderebilirmisiniz.
Bir projede çıkmaza girmişken bu konu gerçekten ilaç gibi geldi. Tebrikler
Merhaba, webservice konusunda yaptığınız uygulama çok güzel. Benim Webservice le ilgili büyük bir sorunum var ve eğer bana yardımcı olursanız cok sevinirim.
Ben server üzerinde webservice yapıyorum , projeme ekliyorum çalışıyor. fakat client dan ona ulaşamıyorum. çünkü adresi http://localhost:50717/mywebservice/service.asmx gibi localhost adresi oluyor ben buna erişmek için serverın ip sini veriyorum ancak yinede, ulaşamıyorum. Ne yapmam lazım. Server şirketteki bir server, bende şirketteki bilgisayarımdan girmeyi deniyorum. server a ping atabiliyorum .. yani normal erişim konusunda sıkıntı yok. Ama browserdan yazdıgım zaman http://85.196.45.87/mywebservice/service.asmx olmuyor.
Client dan server daki webservice i nasıl çalıştırabilirm.
Bu konuyla ilgili bana dönüş yaparsanız çok memnun olurum. Teşekkürler.
Merhaba, öncelikle projenizi iis altına uygulama olarak ekliyor musunuz ? Yani kendi bilgisayarınızdan örneğin; 192.168.1.15/projem şeklinde servisini çalıştırabiliyor musunuz ?
Benzer bir sorunu bende yaşıyorum, kodlamasını bir türlü bitiremediğim forum projemde sohbet bölümü var, ben webservice ile winform projesinden sohbet bölümüne ulaşmak istedim, servisi forum projesinde oluşturdum ama winform’da add service reference diyorum http://localhost/forumprojesi/serviceismi diyorum servisi görmüyor, acaba birşey eksik mi yaptım ne.
Merhabalar hocam, resim doğrulamalı bir internet sitesinde login olup, loginden sonra bikaç sayfa gezip oradaki verileri çekmem gerekiyor. Bu olayı web servisi ile mi yapacağım yoksa asp.net web app. ile mi? Bu konuda beni yönlendirebilirmisiniz?
2 şekilde de yapabilirsiniz, crawler diye aratırsanız sonuca ulaşabilirsiniz. Resim doğrulama olayını nasıl aşarsınız onu bilemiyorum :S
resim doğrulama olayı için iframe gibi siteyi açtırıp öyle yapsam manuel girerim diye düşünüyorum hocam. Ama iframe olursa login olduktan sonra kodları işliyemem sanırım doğrumu? o yüzden böyle bişey mümkünmü acaba?
Eğer resimdeki kodu elle gireceksen hiç bir şeyle uğraşma. Winform içine bir tane tarayıcı at (browser) sonra istediğin kısmı al kullan, şurada ki örnekte nasıl elementlerin kullanıldığı anlatılıyor ;) http://stackoverflow.com/questions/5375596/unable-to-get-htmlelement-in-winforms-webbrowser-control
HtmlElement sınıfı asp.net web app’ta yok sanırım hocam. ben asp.net uygulaması yapmayı deniyorum ama en azından derdimi anlatabilmeme sevindim
tesekkur ederm cok faydalandm
vb kullanan örneklerinzde var mıdır acaba?
çalıştığım şirkette web servisler alanına yani atandım ve bu başlangıç aşamasında bu makaleniz bana çok faydalı oldu!Trabzonspor amblemi de ne güzel yakıştı al yıldızımın yanına!sorunlarım olduğunda umarım size sorabilirim!!emeğinize sağlık teşekkür ederiz!
Teşekkür ederim :) Buradan sorabilirsiniz, bilgim dahilinde cevap vermeye çalışabilirim :)
Merhabalar bütün gün web servisleri kullanımı hakkında araştırma yaptım bundan önce hiç bir şey bilmiyordum web servisi ile ilgili okuduğum makalelerden biraz bilgi edindim normalde c#ile çalışıyorum bunun için ama çok farketmez genel mantık nasıl yapmam gerektiği konusunda yardımcı olabilirseniz sevinirim. vs2010da yeni proje açıp references -> add service reference -> advanced -> add web reference diyorum ve urlyi giriyorum.bi kaç uygulamayı çalıştırdım inceledim ve anladım biraz örneğin http://www.webservicex.net/globalweather.asmx?wsdl bu urlyi eklediğim zaman bulabiliyor ve ekliyebiliyorum http olanlarda sorun olmuyo olabilir fakat şuan PTT için bir uygulama yapmam gerekiyor. https://interaktifkargo.ptt.gov.tr/topluTakipDetay/topluTakipDetay?WSDL bu urlyi girdiğim zaman güvenlik hatası vs veriyor.
hata :
There was an error downloading ‘https://interaktifkargo.ptt.gov.tr/topluTakipDetay/topluTakipDetay?WSDL'.
The underlying connection was closed: An unexpected error occurred on a send.
Received an unexpected EOF or 0 bytes from the transport stream.
There was an error downloading ‘https://interakt
yardımcı olabilicek varsa çok sevinirim.
Merhaba web servisi çalıştırıyorum fakat localhostta çalışmıyor 127.0.0.1 adresini girmem gerekiyor çağrdığım zaman da yine localhosta yönlendiği için hata veriyor nasıl düzeltebilirim
‘/HelloWorld’ içinde URL beklenmedik bir şekilde sonlandığından istek biçimi tanınmıyor.
bilgileriniz için teşekkürler…
Visual Studio 2010 .NET 4.0 kullanarak yapmaya çalıştım. biraz eklemeler oldu ama sonunda mutlu sona ulaştım…
Payaşım için tekrar teşekkürler…