|
WebClient ile XML Verisinin Gönderilip İşlenmesi |
|
Gönderiliyor lütfen bekleyin... |
|
|
Bu örneğimizle, WebClient classı ile bir xml stringini
nasıl post edeceğimizi ve post ettiğimiz veriy XmlDocument ile nasıl
yükleyeceğimizi öğreneceğiz. Dilerseniz önce WebClient sınıfına kısa bir
giriş yapıp daha sonra örnek kodumuzla konuya açıklık getirelim.
WebClient sınıf bir URI (Uniform Resource
Identifier) ye veri gönderme ve URI den veri almaya yarayan metotları
içerir. Bu metotlar: DownloadData, DownloadFile, OpenRead, OpenWrite,
UploadData, UploadFile, UploadValues dir.
Ben bu yazımda WebClient'ın sadece UploadData metotunu
açıklamaya çalışacağım.
Aşağıdaki kodun çalışabilmesi için kodunuza
System.Text ve System.Net isim alanlarını eklemeyi unutmayın.
using System.Text;
using
System.Net;
Eklemeyi unutmayın.
private
void Form1_Load(object
sender, System.EventArgs e)
{
string xmlString =
"0635587TolgaGuler";
/* WebClient ile
göndermek istediğimiz stringi oluşturuyoruz. Tabi bu stringin xml formatında
olmasına gerek yok,
ama bizim uygulamamızda stringi yolladığımız sayfa geçerli bir xml yapısı
bekliyor. */
string
url = "http://localhost/getxmlstring/WebForm1.aspx";
// xsml stringi yollayacağımız
adresi string olarak tanımlıyoruz.
WebClient myWebClient = new
WebClient();
// WebClient objesini
yaratıyoruz.
byte[]
data = Encoding.ASCII.GetBytes(xmlString);
// WebClient metodu
yollanacak olan datayı byte olarak parametre alabildiği için stringi byte a
çeviriyoruz.
byte[]
response = myWebClient.UploadData(url,"POST",data);
/* byte türünden response
değişkenini tanımlıyoruz. ve değer olarak da datayı kabul eden sayfanın
döndürdüğü byte
türünden değeri atıyoruz. UploadData metotu 3 parametre alır. 1.si datanın
yollanacağı string tütünden url değişkeni,
2.si metot bu POST veya GET olabilir. 3.sü byte türünden yollanacak
veri.
MessageBox.Show(Encoding.ASCII.GetString(response).ToString());
/* byte olan respons u stringe çevirip
görüntülüyoruz.
}
|
Böylece istediğimiz datayı istediğimiz sayfaya nasıl
yollayabileceğimiz öğrenmiş olduk. Diğer metotları da MSDN den
rahatlıkla öğrenebilirsiniz. Gelelim datamızı kabul eden aspx sayfasına.
Bu uygulama kendisine gönderilen xml'i XmlDocument sınıf Load()
metodu ile yükler, düğümlerin(node) değerlerini tek tek değişkenlere atar ve bu
değişkenleri internetteki veri tabanına kaydeder.
Yeni bir Asp.Net web projesi yaratın ve adını
getxmlstring olarak ayarlayın.
Kodunuzun başına using System.Xml; i eklemeyi
unutmayın tabii.
private
void Page_Load(object sender,
System.EventArgs e)
{
XmlDocument myXml = new XmlDocument();
try
{
myXml.Load(Request.InputStream);
// xml i yüklerken hata olup olmadığını kontrol ediyoruz
}
catch(Exception ex)
{
Response.Write(ex.Message.ToString());
Response.End();
// hata oluşursa yanıt olarak hata mesajını verip
uygulamayı sonlandırıyoruz.
}
XmlNode MusteriNo =
myXml.SelectSingleNode("/Kayit/MusteriNo");
XmlNode Adi = myXml.SelectSingleNode("/Kayit/Adi");
XmlNode Soyadi = myXml.SelectSingleNode("/Kayit/Soyadi");
// gönderilen xml in her bir
nodundaki değerleri XmlNode tipi değişkenlerine atıyoruz.
Response.Write(Kaydet(MusteriNo.InnerXml,Adi.InnerXml,Soyadi.InnerXml).ToString());
// verileri kaydet isimli fonksiyon ile internetteki
veri tabanına kaydediyoruz.ve cevap veriyoruz
// Not : Yukarıdaki Kaydet() metodunu siz kendi
veritabanınıza göre ayarlamalısınız.
Response.End();
}
|
Böylece masa üstü programımızdan
WebClient sınıfının DataPost metodu ile internetteki veri tabanına kayıt
yapmış olduk. Tabi bu işi yapan bir web servisi programlamak bu örnek için daha
mantıklı olabilir.
Makale:
WebClient ile XML Verisinin Gönderilip İşlenmesi XML ve Web Servisleri Tolga Güler
|
|
|
-
-
Eklenen Son 10
-
Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor
|
|