Преглед садржаја
Повезаћемо се са сервером, читаћемо и рашчлањивати са ЈСОН -ом тако да он враћа информације и на крају ћемо их сачувати у бази података на нашем уређају.За оне који немају сервер на коме би могли да изврше тестове, можемо користити наш уређај и Ви-Фи рутер за извођење тестова без проблема.
Прво што ћемо учинити је да отворимо било који програм за уређивање кода Ецлипсе, Бетбеанс или онај који нам се највише свиђа. У новом пројекту креираћемо нову класу под називом ЈСОНМанагер која ће имати следећу статичку и јавну методу.
јавни статички ЈСОНОбјецт гетЈСОНфромУРЛ (УРЛ низа) {ИнпутСтреам ис = нулл; Стринг ресулт = ""; ЈСОНОбјецт јсон = нулл; три {ХттпЦлиент хттпцлиент = нев ДефаултХттпЦлиент (); ХттпПост хттппост = нови ХттпПост (урл); ХттпРеспонсе одговор = хттпцлиент.екецуте (хттппост); ХттпЕнтити ентитет = респонсе.гетЕнтити (); ис = ентити.гетЦонтент (); } цатцх (Изузетак е) {} три {БуффередРеадер реадер = нев БуффередРеадер (нев ИнпутСтреамРеадер (ис, "исо-8859-1"), 8); СтрингБуилдер сб = нови СтрингБуилдер (); Низ линија = нулл; вхиле ((лине = реадер.реадЛине ())! = нулл) {сб.аппенд (лине + "\ н"); } је близу (); ресулт = сб.тоСтринг (); } цатцх (Изузетак е) {} три {јсон = нев ЈСОНОбјецт (ресулт); } цатцх (ЈСОНЕкцептион е) {} ретурн јсон; }
Метода ће се повезати са УРЛ -ом који наведемо и покушаће да прочита и анализира одговор у ЈСОНОбјекту.
Први део методе отвара хттп везу и добија одговор у ИнпутСтреам -у. Други део чита одговор и анализира га са објектом БуффередРеадер да би га коначно проследио Стрингу.
Овај низ је неопходан у трећем делу за креирање новог ЈСОНОбјекта који ће бити оно што ћемо коначно вратити.
За следећи део креирамо нову класу, коју ћу назвати ЈСОНПарсерЛиброс. Ова класа ће бити задужена за читање помоћне услуге претходне методе и спремање у базу података.
Погледајмо како то функционише, на пример у бази филмова.
приватна делатност; приватни ЈСОНОбјецт јОбјецт; приватни ПрогрессДиалог прогрессДиалог = нулл; привате Руннабле рунРеадАндПарсеЈСОН; јавни ЈСОНПарсерПелицулас (Активност а) {активност = а; } публиц воид реадАндПарсеЈСОН Мовиес () баца ЈСОНЕкцептион {рунРеадАндПарсеЈСОН = нев Руннабле () {@Оверриде публиц воид рун () {три {[/ сизе] [/ фонт] реадЈСОН Мовиес (); } цатцх (Изузетак е) {} [/ сизе] [/ фонт]}}; Нит теме = нова нит (нулл, рунРеадАндПарсеЈСОН, "бгРеадЈСОНМовиес"); тхреад.старт (); прогрессДиалог = ПрогрессДиалог.схов (активност, "Преузимање информација", "Молимо сачекајте", тачно); привате воид реадЈСОНПелицулас () баца ЈСОНЕкцептион {јОбјецт = ЈСОНМанагер.гетЈСОНфромУРЛ ("хттп://208.87.120.105/андроид/сервице.пелицулас.пхп"); иф (јОбјецт! = нулл) парсеЈСОНПелицулас (јОбјецт.гетЈСОНАрраи ("филмови")); ацтивити.рунОнУиТхреад (ретурнРес); } привате воид парсеЈСОНМовиес (ЈСОНАрраи бооксАрраи) баца ЈСОНЕкцептион {фор (инт и = 0; и <мовиесАрраи.ленгтх (); и ++) {Мовие л = нев Мовиес (); л.сетИдМовие (мовиеАрраи.гетЈСОНОбјецт (и) .гетИнт ("ид")); л.сетТитле (мовиеАрраи.гетЈСОНОбјецт (и) .гетСтринг ("филм")); л.саве (активност); }} привате Руннабле ретурнРес = нев Руннабле () {@Оверриде публиц воид рун () {прогрессДиалог.дисмисс (); }};
Затим имамо јавни метод који ћемо користити за позивање наше услуге реадАндПарсеЈсонЛиброс. Ова метода ствара нову нит извршавања у оквиру које ће бити упућен позив веб сервису, поред тога, покреће се прозор за дијалог који ће обавестити корисника да се врши преузимање.
Као што видимо, поставио сам ИП локалне мреже за позивање сервиса, што одговара тиму у коме сам развио веб услугу. У време тестирања овога, ако имате Ви-Фи рутер, морамо активирати Ви-Фи везу на нашем Андроид уређају и повезати се са нашом локалном мрежом како бисмо имали приступ услузи. У случају да немамо вифи, имамо и друге опције, као што је постављање веб услуге на сервер на интернету, подаци ће бити преузети помоћу наше 3Г везе или их можемо тестирати и помоћу Андроид емулатора.Да ли вам се допао и помогао овај водич?Можете наградити аутора притиском на ово дугме да бисте му дали позитиван поен