Android-də Şəbəkə Sorğuları 1-ci Hissə

Sabuhi Talibli
Aug 8, 2017 · 2 min read

İndiki dövrdə hər hansısa bir android tətbiq hazırlayarkən qarşısını almaq mümkün olmayan bir şey var: Şəbəkə sorğuları.

Çünki, müasir tətbiqlər çox zaman öz-özlüyündə, internetdən təcrid olunmuş şəkildə fəaliyyət göstərmir. Biz android tətbiq hazırlayarkən, istər şəkil yükləmək, istərsə də məlumat almaq vəya göndərmək üçün hansısa kənar bir serverlə əlaqə yaratmalı və şəbəkə sorğuları göndərməliyik. Belə əlaqə HTTP protokoluna əsaslanır, çünki bu protokol bizi məlumatların ötürülməsi üçün sadə bir mexanizmlə təmin edir. Üstəlik, bir çox platformalarda HTTP əsaslı API-lar mövcuddur və hər hansısa bir android tətbiqin bu platformalardan birinə inteqrasiya olunmasına ehtiyac duyula bilər. Bizim tətbiq birbaşa olaraq android HTTP kitabxanasından istifadə etməsə belə, bundan istifadə edən android platformun öz təməl tətbiq və kitabxanaları var. Bu yazıda android SDK-nın HTTP sorğuları idarə etmək üçün bizə təmin etdiyi API-a nəzər salacıq: HttpUrlConnection.

HttpURLConnection

HttpUrlConnection effektiv şəbəkə əməliyyatları yerinə yetirmək üçün HTTP Client rolunu yerinə yetirir. Bu, Java dilinin HTTP/HTTPS protokollarını dəstəkləyən və sorğular göndərmək üçün istifadə olunan təməl klassıdır. Bu klass adətən “AsyncTask“ adlı klass ilə bərabər istifadə olunur.

AsyncTask klassı bizə arxa fonda asinxron tapşırıqların yerinə yetirilməsinə və sonra nəticələrin UI thread-ə dərc olunmasına imkan verir.

Android SDK 23-dən öncə SDK-nın “Apache Http” adlı digər kitabxanası var idi. Lakin, android artıq bu kitabxana üçün dəstəyi dayandırıb və istifadə olunması məsləhət görülmür.

URL url = new URL(“https://api.github.com/users/octocat/repos");
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod(“GET”);
connection.connect();
try { InputStream in = new BufferedInputStream(urlConnection.getInputStream()); readStream(in);} finally { urlConnection.disconnect();}

Göründüyü kimi istifadəsi sadə olsa da, bu üsulun bir neçə mənfi tərəfləri də var. Birincisi, bu klass vasitəsilə sorğu göndərmək üçün ayrı thread açmaq lazımdı. İkincisi, gələn məlumatın düzgün proses olunmasına, bizə lazım olan formata salınmasına ciddi fikir vermək lazımdı. Üçüncüsü, bu üsuldan istifadə zamanı yazdığımız kod daha dağınıq görsənir.

Buna görə çoxları, bu klass yerinə digər alternativlərdən, yəni açıq-qaynaqlı müasir kitabxanalardan istifadə etməyə üstünlük verir. Bu kitabxanalar yuxarıda qeyd olunan problemləri həll etməklə yanaşı, Response Caching və REST API-larla daha rahat işləmək imkanı verir.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade