Mavzu: Android ilovalarida tarmoqli dasturlash bilan ishlash. Reja 1. Mobil ilovalarda tarmoqqa ulanishni tekshirish 3. HTTP orqali serverga ulanish. 4. JSON xizmatidan foydalanish
Mobil ilovalarda tarmoqqa ulanishni tekshirish Hozirgi kunda internet tarmogʼi barcha sohalarda rivojlanib ulgurgan. Demak biz mobil qurilmalardan foydalanish jarayonida faqat SMS/MMS yoki elektron pochta xabaralari emas balki internet xizmatlaridan foydalanishimiz mumkin.
Buning uchun ilovalarni yaratishda tarmoqda dasturlash, yaʼni, maxsus protokollar (HTTP), maxsus metodlar (GET, POST), maʼlumotlarni yuklab olish va boshqa xizmatlar (JSON) dan foydalanish koʼnikmalariga ega boʼlishimiz lozim.
Tarmoqqa ulanishni tekshirish
Demak tarmoq bilan ishlash jarayonida birinchi boʼlib, tarmoq holatini yaʼni ulanganlik holatini tekshirib koʼramiz.Аndroid tizimida buning uchun ConnectivityManager sinfidan foydalaniladi. Ushbu sinf orqali yaratilgan obʼekt getSystemService() metodini chaqirish orqali initsializatsiya qilinadi. Ushbu holat boʼyicha quyida dastur kodi keltirilgan:
ConnectivityManager check = (ConnectivityManager) this.context.getSystemService(Context.CONNECTIVITY_S ERVICE);
Bundan keyin biz tarmoq haqidagi maʼlumotni toʼliq olishimiz kerak boʼladi. Buning uchun getAllNetworkInfo metodidan foydalaniladi. Ushbu metodi NetworkInfo tipidagi massiv qaytaradi va quyidagicha foydalaniladi:
NetworkInfo[] info = check.getAllNetworkInfo();
Endi ushbu info nomli massivga kelgan qiymat orqali ilova tarmoqqa ulanganligini tekshirish uchun getState metodidan foydalaniladi:
for (int i = 0; iif (info[i].getState() == NetworkInfo.State.CONNECTED){
Toast.makeText(context, "Internet is connected
Toast.LENGTH_SHORT).show();
}
}
Bundan tashqari tarmoq holatini tekshirish uchun quyidagi konstatntalardan foydalaniladi:
№ State
1 CONNECTING
2 DISCONNECTED
3 DISCONNECTING
4 SUSPENDED
5 UNKNOWN
HTTP orqali serverga ulanish
Internet borligini tekshirganimizdan keyin ushbu tarmoq orqali turli xil operatsiyalar amalga oshirishimiz mumkin. Misol uchun internet orqali matn yoki binary (misol uchun rasm) maʼlumotlarni yuklab olish va h.k.lar.
Android tizimida ushbu operatsiyalarni amalga oshirish uchun HttpURLConnection va
URL sinflaridan foydalaniladi. Quyidag kod qismi orqali koʼrsatilgan internet manzil uchun url obʼekti yaratiladi:
String link = "http://www.google.com";
URL = new URL(link);
HTTP orqali serverga ulanish
url yaratilgandan keyin HttpURLConnection sinfiga joʼnatiladi va HttpURLConnection obʼekti koʼrsatilgan internet manzili bilan bogʼlanadi. Bu bogʼlanishni esa HttpURLConnection sinfining connect metodidan foydalanib quyidagicha amalga oshiriladi. HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.connect();
Demak ushbu bogʼlanish orqali mazkur sahifa HTML hujjati kodini oʼqib olamiz. Maʼlumotlarni oʼqib olish uchun esa InputStream va BufferedReader sinflaridan foydalaniladi.
Quyida misol keltirilgan:
InputStream is = conn.getInputStream();
BufferedReader reader =new BufferedReader(new InputStreamReader(is, "UTF-8"));
String webPage = "",data=""; while ((data = reader.readLine()) != null){
webPage += data + "\n";
}
HttpURLConnection sinfining quyidagicha metodlari mavjud. Quyidagi jadvalda connect() metodidan boshqa metodlar ham keltirilgan:
№ Metod
1 disconnect() – internet bogʼlanishni tugatish uchun ishlatiladi
2 getRequestMethod() – ushbu metod joriy ishlab turgan serverning HTTP metodini qaytaradi
3 getResponseCode() – masofadagi HTTP server “response code” qaytaradi
4 setRequestMethod (String method) - HTTP server
tomonidan soʼralgan metodni oʼrnatadi
5 usingProxy() - proxy server mavjud yoki yoʼqligini qaytaradi
Internet bogʼlanishni tekshirish
1. Yangi Android loyiha yaratamiz va uni Networking deb nomlaymiz.
2. Ilovaning AndroidManifest.xml fayliga quyidagi “permission” qoʼshib qoʼyiladi:
3. MainAcivity.java fayli mos holda oʼzgartiriladi
4. activity_main.xml fayli ham mos holda oʼzgartiriladi
activity_main.xml