Čitanje web usluga s Androida s JSON -om

Sadržaj

Spojit ćemo se na poslužitelj, čitati ćemo i raščlaniti s JSON -om tako da vraća informacije i na kraju ćemo ih spremiti u bazu podataka na našem uređaju.
Za one koji nemaju poslužitelj na kojem bi mogli provesti testove, možemo koristiti naš uređaj i Wi-Fi usmjerivač za provođenje testova bez problema.
Prvo što ćemo učiniti je otvoriti bilo koji program za uređivanje koda Eclipse, Betbeans ili onaj koji nam se najviše sviđa. U novom projektu stvorit ćemo novu klasu pod nazivom JSONManager koja će imati sljedeću statičku i javnu metodu.
 javni statički JSONObject getJSONfromURL (URL niza) {InputStream is = null; String result = ""; JSONObject json = null; probajte {HttpClient httpclient = new DefaultHttpClient (); HttpPost httppost = novi HttpPost (url); HttpResponse odgovor = httpclient.execute (httppost); HttpEntity entitet = response.getEntity (); is = entity.getContent (); } catch (Iznimka e) {} try {BufferedReader reader = new BufferedReader (new InputStreamReader (is, "iso-8859-1"), 8); StringBuilder sb = novi StringBuilder (); Linija niza = null; while ((line = reader.readLine ())! = null) {sb.append (line + "\ n"); } je blizu (); rezultat = sb.toString (); } catch (iznimka e) {} try {json = new JSONObject (result); } catch (JSONException e) {} return json; } 

Metoda će se povezati s URL -om koji navedemo i pokušat će pročitati i raščlaniti odgovor u JSONObjektu.
Prvi dio metode otvara http vezu i dobiva odgovor u InputStreamu. Drugi dio čita odgovor i analizira ga s objektom BufferedReader kako bi ga konačno proslijedio Stringu.
Ovaj niz je potreban u trećem dijelu za stvaranje novog JSONObjekta koji će biti ono što ćemo konačno vratiti.
Za sljedeći dio stvaramo novu klasu, koju ću nazvati JSONParserLibros. Ova klasa će biti zadužena za čitanje pomognute usluge prethodne metode i spremanje u bazu podataka.
Pogledajmo kako to funkcionira, na primjer u bazi filmova.
 privatna djelatnost; privatni JSONObject jObject; privatni ProgressDialog progressDialog = null; privatno RunRable runReadAndParseJSON; javni JSONParserPeliculas (Aktivnost a) {aktivnost = a; } public void readAndParseJSON Movies () baca JSONException {runReadAndParseJSON = new Runnable () {@Override public void run () {try {[/ size] [/ font] readJSON Movies (); } catch (iznimka e) {} [/ size] [/ font]}}; Nit niti = nova nit (null, runReadAndParseJSON, "bgReadJSONMovies"); thread.start (); progressDialog = ProgressDialog.show (aktivnost, "Preuzimanje informacija", "Molimo pričekajte", istina); private void readJSONPeliculas () baca JSONException {jObject = JSONManager.getJSONfromURL ("http://208.87.120.105/android/service.peliculas.php"); if (jObject! = null) parseJSONPeliculas (jObject.getJSONArray ("filmovi")); activity.runOnUiThread (returnRes); } private void parseJSONMovies (JSONArray booksArray) baca JSONException {for (int i = 0; i <moviesArray.length (); i ++) {Movie l = new Movies (); l.setIdMovie (movieArray.getJSONObject (i) .getInt ("id")); l.setTitle (movieArray.getJSONObject (i) .getString ("film")); l.save (aktivnost); }} private Runnable returnRes = new Runnable () {@Override public void run () {progressDialog.dismiss (); }}; 

Zatim imamo javnu metodu koju ćemo koristiti za pozivanje naše usluge readAndParseJsonLibros. Ova metoda stvara novu nit izvođenja unutar koje će se uputiti poziv web usluzi, osim toga, pokreće se dijaloški prozor koji će obavijestiti korisnika da se vrši preuzimanje.
Kao što vidimo, stavio sam IP lokalne mreže za pozivanje usluge, što odgovara timu u kojem sam razvio web uslugu. U vrijeme testiranja ovoga, ako imate Wi-Fi usmjerivač, moramo aktivirati Wi-Fi vezu na svom Android uređaju i povezati se s lokalnom mrežom kako bismo mogli imati pristup usluzi. U slučaju da nemamo wifi, imamo i druge mogućnosti, poput postavljanja web usluge na poslužitelj na internetu, podaci će se preuzeti putem naše 3G veze ili ih možemo testirati i pomoću Android emulatora.Je li vam se svidio i pomogao ovaj vodič?Autor možete nagraditi pritiskom na ovaj gumb kako biste mu dali pozitivan bod
wave wave wave wave wave