Android Programlama – Web Sitesinden Veri Okuma (Php & JSON Web Servis)

1
Want create site? Find Free WordPress Themes and plugins.

Merhabalar;

Bu yazıda çoğu profesyonel uygulamalarda kullanılan web servis yardımıyıla internette herhangi bir siteden veri çekerek android yani client tarafında kullanmadan bahsedeceğim. Örneğin; bir haber uygulaması geliştiriyoruz.Fakat geliştirdiğimiz sitenin  RSS i yetersiz yada yok ise mecburen sitenin kaynağına inerek html tag larini parse etmemiz gerekecek. İşte bu noktada aslında kullanabileceğimiz çeşitli yöntemler var. En çok kullanılanlar ise Client yani Android tarafında JSOUP kütüphanesi kullanarak,diğeri de php ile bot yazıp sonuçları web servis ile almak. Ben ikisini de ayrı yazı olarak anlatmayı düşündüm.Ama ben genelde bu tarz projelerde web servisi tercih ediyorum.Tag lari parçalama kısmını tamamen web serviste halledip android tarafında sadece web servisi çağırmak kalıyor. Veriyi çekeceğimiz site muhtemelen bizim elimizde olmadığı için site sahibi bir tane bile tag değiştirse android tarafını oturup baştan düzenlememiz gerekicek.Ama bunun yerine bu işlemi serviste yapmak daha kolay.Özellikle de  php ile.

Şimdi bu yazıda yapacağımız örnek projeden bahsedeyim. Android kısmında sitemizdeki yazıları çekeceğiz.Tabi biraz php bilmek gerekiyor ama mantığı anlarsanız zorlanmazsınız.Çok karışık işler yapmayacağız. Siteden neleri çekeceğiz görsel olarak gösterelim:

Şimdi de çekeceğimz bu verilerin kaynaktaki kodlarını görelim.Hangi class da olduğu yada hangi id ye sahip vb. Sonrasında da web servisi yazmaya başlayacağız.

(Öğeyi denetle yaptığımızda gelen kodlar ile kaynaktaki kodlar farklı olabiliyor.Bot yazarken sonuç alamazsak kaynağı görüntüleyeceğiz.)

Şimdi web servisi yazmaya başlayalım.PHP ile bot yaparken aslında genelde 2 yol kullanılır. Birisi curl diğeri de  file_get_gontents metodu. Curl daha fonksiyonel . O yüzden curl kullanarak hazırlayacağım botu.Ama ilerleyen derslerde file_get_contents ile de bir yazı yazmayı düşünüyorum.

Şimdi artık web servisimizi oluşturalım. thekodprogram.php olarak oluşturdum ben. Gerekli açıklamaları kodlar üzerinde yaptım :

thekodprogram.php


Şuan başlıkları aldık fakat daha bitmedi tabiki.Çıktısını göstermek için koydum.Devam edeceğiz fakat yukarıdaki kod bloğu bize şu çıktıyı verdi :

Gördüğümüz gibi array şeklinde sonuçlar aldık.İşte biz bu arraylarin indekslerini json dizimize atıp döndüreceğiz. Mantık basit arkadaşlar.Şimdi web servise özet ve resim için eklemeler yapalım:

Özet eklemesi ile web servis devam :


Özetler için de çıktımız aşağıdaki gibi oldu.

Şimdi son olarak da resimleri alalım.


Bunun çıktısı da :

Evet şimdi çekmek istediğimiz verileri array halinde tutmuş olduk.Sıra geldi bu array lari Json diziye atıp yollamak.

Web servisin son hali :


Web servisin JSON çıktısı da şu şekilde :

Görüldüğü üzere karmançorman görünüyo.Bunun için JSON Parser düzenleyecisi kullanırsak tag lari bulamda zorlanmayız. Ben bu adresi kullanıyorum.Burayı kullandıktan sonra web servisimizin çıktısı şu şekilde oldu :

Web kısmı uzun oldu ama tamamlandı şükür 🙂 Şimdi Android kısmına geçelim. Tek activity kullanacağım. Birde bu activty de kullanacağım custom list için ayrı bir xml dosyamız olacak.Gerekli açıklamaları kod üzerinde yapacağım.Önce activity_main.xml kodlarını görelim :

activity_main.xml


Şimdi CustomList için oluşturacağımız layout dosyasını görelim :

customlist.xml


Şimdi ise JSON verimize ulaşabilmek için istek yollayacağımız bir class hazırladım.Bu kısıma url adresimizi gönderiyoruz ve response alıyoruz.

getResponse.java


Şimdi de artık MainActivity.java kısmını ineleyelim.En önemli işleri bu class da yapıyoruz :

Manifest Dosyamızı da aşağıdaki gibi hazırlıyoruz.

AndroidManifest.xml


Son olarak uygulamanın ekran çıktısını görelim :

Biraz uzun bir yazı oldu.Bazı kısımları anlatmak benim içinde zor oldu.Umarım faydalı olur.

Bir sonraki yazıda görüşmek dileğiyle …

Did you find apk for android? You can find new Free Android Games and apps.
0%
0%
Share.

About Author

Ben Kocaeli üniversitesi Uçak Elektrik Elektronik Bölümü Okuyorum. Bununla Birlikte 9 Yıldır yazılımcılık Yapıyorum. 12 Farklı Dilde ve 6 Farklı Platformda Profesyonel Yazılımlar Geliştirebiliyorum. Yazılım Benim için Hobi Değil Yasaşm Tarzıdır. Bu işten Para Kazanmak Değil Zevk Almak İçin Yapıyorum. Bu yüzden yazılım dünyasından ayrılmak istemiyorum.

1 Yorum

Leave A Reply