Facebook RSS Feed
 

.NET Micro Framework: İnternetten RSS Okumak

-RSS; blog yazıları, haberler ve diğer güncellemelerin hızlı paylaşımını sağlayan bir XML dosyasıdır. Haber kaynağı, güncelleme oluşumunda RSS dosyasını günceller ve okuyucu yazılım periyodik aralıklarla bu dosyayı denetler. Bu sayede kullanıcı birçok kaynaktaki gelişmelerden haberdar olur. Örneğimizde haber okuyucu bir program üzerinde duracağız.

İnternet'ten RSS içeriğinin indirilmesi için 3. parti WebClient sınıfını kullanacağız. WebClient sınıfı, indirdiği RSS dosyasını string olarak XML okuyucuya iletecek. XML okuyucu tarafından bölümlere ayrılan RSS dosyası debug mesajı olarak Visual Studio'ya iletilecek. Uygulama modifiye edilerek bu veriler istenilen amaçla kullanılabilir.

Uygulama Kodları

Visual Studio'dan yeni bir Micro Framework Console Application oluşturup aşağıdaki referansları projemize ekleyelim:

- System.dll: WebClient sınıfının socket'lere erişmesi için.
- System.IO.dll: Memory Stream oluşturmak için.
- System.Xml.dll: XML verisini okumak için.
- System.Http.dll: İnternet'e erişim için.
- Microsoft.SPOT.Graphics.dll: WebClient sınıfının çalışması için gerekli.

Bir sonraki aşamada WebClient.cs sınıfını projeye ekleyeceğiz. Bu sınıf ile uygulamamız İnternet'e bağlanıp RSS dosyasını indirecek.

Program.cs'in kodları da aşağıdaki gibi olacak::

using System;
using System.IO;
using System.Text;
using System.Xml;
using System.Threading;
using Microsoft.SPOT;
 
namespace MFRSSIleHaberOkumak
{
    public class Program
    {
        public static void Main()
        {
            //80. Porttan CNN Türk web sitesine bağlanacak bir Web Client instance'ı oluşturalım:
            WebClient web = new WebClient("www.cnnturk.com", 80);
 
            //Web Client'ın döndürdüğü XML verisini byte'lara ayırarak memory stream'e gönderelim:
            MemoryStream memoryStream = new MemoryStream(Encoding.UTF8.GetBytes( //XML'i byte'lara böl
                (string)web.GetContent("/servisler/rss/24/formula1.xml"//RSS kaynağının web adresi
                WebClient.ContentType.Text, WebClient.HttpVersion.V_11)));
 
            //Oluşturduğumuz memory stream'i okuyacak bir XML Reader oluşturalım:
            XmlReader xmlReader = XmlReader.Create(memoryStream);
 
            while (!xmlReader.EOF) //XML'in sonuna kadar
            {
                xmlReader.Read(); //XML'in bir satırını oku
                switch (xmlReader.NodeType) //Node türüne göre karar ver
                {
                    case XmlNodeType.XmlDeclaration: //XML Decleration ise
                        Debug.Print(xmlReader.Name);
                        break;
                    case XmlNodeType.Text: //XML Değeri ise
                        Debug.Print(xmlReader.Value);
                        break;
                    default:
                        break;
                }
            }
 
            xmlReader.Close(); //XML Reader'i kapatalım.
 
            Thread.Sleep(Timeout.Infinite);
        }
    }
}

Uygulamayı çalıştırdığınızda simulatör, web client aracılığıyla İnternet'e bağlanıp RSS dosyasını indirecek ve XML Reader ile bu dosya işlenecek. Visual Studio Output yada Immediate Window'da aşağıdaki gibi bir sonuç çıkacak:

xml
CNN Türk
http://www.cnnturk.com
CNN Türk
F1 sıralama turları yapılamadı!
Formula 1 Dünya Şampiyonası'nda Japonya Grand Prix'sinin sıralama turları şiddetli yağış nedeniyle yarına ertelendi.
http://www.cnnturk.com/2010/spor/formula1/10/09/f1.siralama.turlari.yapilamadi/592419.0/index.html http://www.cnnturk.com/2010/spor/formula1/10/09/f1.siralama.turlari.yapilamadi/592419.0/index.html
Sat, 09 Oct 2010 13:57:22 GMT
Barcelona'da Ferrari önde
Katalunya pistindeki Formula 1 testinin ilk gününde en iyi zamanı Ferrari'nin test pilotu Luca Badoer yaptı.
http://www.cnnturk.com/2008/spor/formula1/06/13/barcelona.testinde.ferrari.onde/469966.0/index.html
http://www.cnnturk.com/2008/spor/formula1/06/13/barcelona.testinde.ferrari.onde/469966.0/index.html
Fri, 13 Jun 2008 09:58:00 GMT

Fiziksel cihaz üzerinde uygulamanın çalışması için ağ ayarlarının yapılması gerekmektedir.

Uygulamanın kaynak kodlarını buradan indirebilirsiniz.




 
Hoşgeldiniz!
Son güncelleme: 25.12.2016
-
Yeni Teknik Yazılar
Latte Panda İncelemesi
Turta IoT HAT İncelemesi
USB Gamepad Kullanımı
GPIO Kullanımı
VEML6075 UV Sensör Kullan...
-
İlgili Gruplar
.NET MF ve Gadgeteer FB Grubu
İst. IoT & Wearables Meet-up
-
 

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.Copyright © 1999 - 2017, Umut Erkal. Bu materyal, "Creative Commons Public Licence" ile sunulmuştur.
Kaynak göstererek ve ücretsiz olarak, aynı şartlar altında paylaşabilir ve kullanabilirsiniz. | Kullanım Sözleşmesi