C# ile WebClient Kullanımı

C# web client sınıfı bir web sitesinden veri almayı yada web sitesine veri göndermemizi sağlar.
Web client sınıfını kullanabilmemiz için “System.Net.WebClient” namespace olarak eklememiz gerekiyor.
Aşağıdaki örnek kodları kullanarak belirlediğiniz bir web sitesine istek gönderebilir ve gelen cevabı alabilirsiniz.

En sık kullanılan webclient methodlarından birisi DownloadString metodudur.
Aşağıdaki örnekte belirlediğiniz bir web sitesine bağlanarak kaynak kodlarını indirebilirsiniz.

WebClient w = new WebClient();
string kaynak = wc.DownloadString("http://www.ornek.com");

Aşağıdaki kodları biraz açıklarsak;
İlk olarak bir webclient nesnesi oluşturuyoruz.
Daha sonra webclient nesnemize header bilgileri ekliyoruz.Bazı uygulamalarda header bilgileri de güvenlik amacıyla kontrol edilmekte.
Header bilgisini ekledikten sonra,göndereceğimiz istekdeki parametreleri saklamak için bir collection oluşturuyoruz.
Collection’lar verileri saklamamızı ve gruplayabilmemizi sağlıyor.Array ile aynı işe yarıyor ama collectionlar daha gelişmiş bir versiyondur.
Sayfaya istek yaparken göndereceğimiz parametreleri collectionlara atıyoruz.
Son olarak hangi UploadValues ile hangi siteye istek yapmak istediğimizi,veri gönderme methodunu ve parametrelerimizi gönderiyoruz.
Aşağıdaki kodları geliştirerek yada kendinize uyarlayarak,herhangi bir siteye program ile giriş yaptırabilirsiniz.

WebClient w = new WebClient();
w.Headers.Add(System.Net.HttpRequestHeader.UserAgent, "UserAgent");
w.Headers.Add(System.Net.HttpRequestHeader.Accept, "Acept");
System.Collections.Specialized.NameValueCollection reqparm = new System.Collections.Specialized.NameValueCollection();
reqparm.Add("Kullanici", Kullanici.Text);
reqparm.Add("Sifre", Sifre.Text);
reqparm.Add("Verification", Tokens("a"));
byte[] b = w.UploadValues("http://ornek.com/login", "POST", reqparm);

Eğer bir web sayfasına hem veri gönderip hemde gelen cevabı işlemek istiyorsak,bunun için UploadData metodunu kullanabiliriz.
Bu metod ile gönderilecek veriyi byte dizi olarak gönderip,gelen cevabı yine byte dizi olarak verecektir.

WebClient wClient = new WebClient();
byte[] Data = Encoding.ASCII.GetBytes("csharp");
byte[] Cevap = wClient.UploadData("htp://google.com", "POST", Data);
MessageBox.Show(Encoding.ASCII.GetString(Cevap));

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir