Tīmekļa pakalpojumu lasīšana no Android, izmantojot JSON

Satura rādītājs

Mēs izveidosim savienojumu ar serveri, mēs lasīsim un analizēsim JSON, lai tas atgrieztu informāciju, un visbeidzot mēs to saglabāsim savas ierīces datu bāzē.
Tiem, kuriem nav servera, kur veikt pārbaudes, mēs varam izmantot savu ierīci un Wi-Fi maršrutētāju, lai bez problēmām veiktu testus.
Pirmā lieta, ko mēs darīsim, ir atvērt jebkuru programmu, lai rediģētu kodu Eclipse, Betbeans vai to, kas mums patīk visvairāk. Jaunā projektā mēs izveidosim jaunu klasi ar nosaukumu JSONManager, kurai būs šāda statiskā un publiskā metode.
 publisks statisks JSONObject getJSONfromURL (String url) {InputStream is = null; Virknes rezultāts = ""; JSONObject json = null; pamēģini {HttpClient httpclient = new DefaultHttpClient (); HttpPost httppost = jauns HttpPost (url); HttpResponse atbilde = httpclient.execute (httppost); HttpEntity entītija = response.getEntity (); ir = entītija.getContent (); } catch (Izņēmums e) {} izmēģināt {BufferedReader reader = new BufferedReader (new InputStreamReader (is, "iso-8859-1"), 8); StringBuilder sb = jauns StringBuilder (); Stīgu līnija = null; while ((rinda = lasītājs.lasīšanas rinda ())! = null) {sb.append (rinda + "\ n"); } is.close (); rezultāts = sb.toString (); } nozveja (izņēmums e) {} mēģiniet {json = jauns JSONObject (rezultāts); } nozveja (JSONException e) {} atgriezties json; } 

Metode izveidos savienojumu ar mūsu norādīto URL un mēģinās nolasīt un parsēt atbildi JSONObject.
Metodes pirmā daļa atver http savienojumu un saņem atbildi InputStream. Otrā daļa nolasa atbildi un parsē to ar objektu BufferedReader, lai beidzot to nodotu virknei.
Šī virkne ir nepieciešama trešajā daļā, lai izveidotu jaunu JSONObject, kas būs tas, ko mēs beidzot atgriezīsim.
Nākamajai daļai mēs izveidojam jaunu klasi, kuru es saucu par JSONParserLibros. Šī klase būs atbildīga par iepriekšējās metodes palīdzības pakalpojuma lasīšanu un saglabāšanu datu bāzē.
Apskatīsim, kā tas darbojas, piemēram, filmu datu bāzē.
 privātās aktivitātes; privāts JSONObject jObject; privāts ProgressDialog progressDialog = null; privāts Runnable runReadAndParseJSON; public JSONParserPeliculas (Aktivitāte a) {aktivitāte = a; } public void readAndParseJSON Movies () met JSONException {runReadAndParseJSON = new Runnable () {@Orride public void run () {try {[/ size] [/ font] readJSON Movies (); } catch (izņēmums e) {} [/ size] [/ font]}}; Vītnes pavediens = jauns pavediens (null, runReadAndParseJSON, "bgReadJSONMovies"); pavediens.start (); progressDialog = ProgressDialog.show (aktivitāte, "Informācijas lejupielāde", "Lūdzu, uzgaidiet", true); private void readJSONPeliculas () met JSONException {jObject = JSONManager.getJSONfromURL ("http://208.87.120.105/android/service.peliculas.php"); if (jObject! = null) parseJSONPeliculas (jObject.getJSONArray ("filmas")); activity.runOnUiThread (returnRes); } private void parseJSONMovies (JSONArray booksArray) met 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 ("filma")); l.saglabāt (aktivitāte); }} private Runnable returnRes = new Runnable () {@Override public void run () {progressDialog.dismiss (); }}; 

Tālāk mums ir publiskā metode, kuru izmantosim, lai izsauktu pakalpojumu readAndParseJsonLibros. Šī metode rada jaunu izpildes pavedienu, kurā tiks izsaukts tīmekļa pakalpojums, turklāt tiek atvērts dialoglodziņš, kas informēs lietotāju, ka tiek veikta lejupielāde.
Kā redzam, es esmu ievietojis vietējā tīkla IP, lai izsauktu pakalpojumu, tas atbilst komandai, kurā esmu izstrādājis tīmekļa pakalpojumu. Ja jums ir Wi-Fi maršrutētājs, pārbaudes laikā mums ir jāaktivizē Wi-Fi savienojums mūsu Android ierīcē un jāizveido savienojums ar vietējo tīklu, lai mēs varētu piekļūt pakalpojumam. Ja nav Wi -Fi, mums ir citas iespējas, piemēram, tīmekļa pakalpojuma uzstādīšana uz servera internetā, dati tiks lejupielādēti, izmantojot mūsu 3G savienojumu, vai arī mēs varam to pārbaudīt ar Android emulatoru.Vai jums patika šī apmācība un palīdzējāt tai?Jūs varat apbalvot autoru, nospiežot šo pogu, lai sniegtu viņam pozitīvu punktu
wave wave wave wave wave