[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:00.01,0:00:10.01,Default,,0000,0000,0000,,[MUSICA] Dialogue: 0,0:00:15.59,0:00:20.84,Default,,0000,0000,0000,,Una delle caratteristiche distintive dei\Nsistemi mobile moderni è che essi possono Dialogue: 0,0:00:20.84,0:00:26.17,Default,,0000,0000,0000,,tenerci collegati in rete senza tenerci\Nlegati a una singola locazione. Dialogue: 0,0:00:27.55,0:00:30.64,Default,,0000,0000,0000,,In questa lezione, esploreremo il\Nsoftware e Dialogue: 0,0:00:30.64,0:00:35.84,Default,,0000,0000,0000,,le pratiche di programmazione che servono per\Ncollegare le applicazioni alla rete. Dialogue: 0,0:00:37.23,0:00:41.37,Default,,0000,0000,0000,,Quindi inizierò questa lezione discutendo\Ndel networking in generale. Dialogue: 0,0:00:41.37,0:00:46.08,Default,,0000,0000,0000,,Tale discussione si concentrerà sul\Ncollegamento delle app a Internet Dialogue: 0,0:00:46.08,0:00:49.96,Default,,0000,0000,0000,,usando l'HyperText Transfer Protocol Dialogue: 0,0:00:49.96,0:00:55.42,Default,,0000,0000,0000,,o HTTP, precisamente tramite richieste HTTP GET. Dialogue: 0,0:00:56.94,0:01:02.04,Default,,0000,0000,0000,,Dopo di che, vi presenterò diverse classi \Nche Android offre per supportare questo Dialogue: 0,0:01:02.04,0:01:06.76,Default,,0000,0000,0000,,tipo di networking e infine, discuterò di \Ncome le applicazioni possono Dialogue: 0,0:01:06.76,0:01:12.71,Default,,0000,0000,0000,,elaborare i dati ricevuti in risposta \Na queste richieste HTTP GET. Dialogue: 0,0:01:12.71,0:01:17.59,Default,,0000,0000,0000,,In particolare, parlerò di due popolari\Nlinguaggi di formattazione dei dati. Dialogue: 0,0:01:17.59,0:01:21.45,Default,,0000,0000,0000,,Uno, il JavaScript Object Notation Language, Dialogue: 0,0:01:21.45,0:01:27.15,Default,,0000,0000,0000,,o JSON e due, l'Extensible Markup Language,\No XML. Dialogue: 0,0:01:27.15,0:01:31.70,Default,,0000,0000,0000,,E parlerò di come si analizzano, \No si capiscono, Dialogue: 0,0:01:31.70,0:01:36.58,Default,,0000,0000,0000,,queste risposte HTTP quando sono \Nformattate in uno di questi linguaggi. Dialogue: 0,0:01:36.58,0:01:41.41,Default,,0000,0000,0000,,Dunque, i primi dispositivi palmari \Nci hanno dato la mobilità. Dialogue: 0,0:01:41.41,0:01:46.25,Default,,0000,0000,0000,,Ci si poteva spostare da un luogo all'altro,\Ned eseguire comunque computazioni utili. Dialogue: 0,0:01:47.27,0:01:52.84,Default,,0000,0000,0000,,Tuttavia, le loro capacità di networking \Nerano primitive per gli standard odierni. Dialogue: 0,0:01:52.84,0:01:57.82,Default,,0000,0000,0000,,Ora, andando avanti, i dispositivi di oggi\Ncombinano potenti processori con Dialogue: 0,0:01:57.82,0:02:02.55,Default,,0000,0000,0000,,veloci connessioni di rete via WiFi\Ne reti cellulari. Dialogue: 0,0:02:03.67,0:02:08.28,Default,,0000,0000,0000,,Le applicazioni portatili quindi vorranno\Nspesso far uso Dialogue: 0,0:02:08.28,0:02:14.04,Default,,0000,0000,0000,,di queste funzionalità di rete per \Naccedere a dati e servizi e fornirne. Dialogue: 0,0:02:15.71,0:02:21.51,Default,,0000,0000,0000,,Per aiutarvi a farlo, Android include una \Nvarietà di classi di supporto al netwoking Dialogue: 0,0:02:21.51,0:02:26.89,Default,,0000,0000,0000,,tra cui le classi Socket e URL, \Nnei package java.net, Dialogue: 0,0:02:28.02,0:02:36.75,Default,,0000,0000,0000,,le classi HttpRequest e HttpResponse, \Nnei package org.apache. Dialogue: 0,0:02:36.75,0:02:44.63,Default,,0000,0000,0000,,E le classi URI, AndroidHttpClient, e AudioStream, nei package android.net. Dialogue: 0,0:02:46.22,0:02:50.62,Default,,0000,0000,0000,,In questa lezione guarderemo\Nmolte di queste classi, Dialogue: 0,0:02:50.62,0:02:54.70,Default,,0000,0000,0000,,usando ciascuna di esse per implementare\Nla stessa applicazione di esempio. Dialogue: 0,0:02:55.72,0:03:01.29,Default,,0000,0000,0000,,Quest'applicazione interagisce con un \Nservizio internet per ottenere informazioni Dialogue: 0,0:03:01.29,0:03:05.47,Default,,0000,0000,0000,,sui terremoti che si sono verificati in \Nuna particolare regione geografica. Dialogue: 0,0:03:05.47,0:03:10.93,Default,,0000,0000,0000,,E come vedrete, quei dati vengono \Nrestituiti in vari formati. Dialogue: 0,0:03:10.93,0:03:15.60,Default,,0000,0000,0000,,Inizialmente ci limiteremo a visualizzare \Nil testo così come viene scaricato. Dialogue: 0,0:03:15.60,0:03:18.66,Default,,0000,0000,0000,,Più avanti nella lezione, \Nvi mostrerò come processare Dialogue: 0,0:03:18.66,0:03:23.52,Default,,0000,0000,0000,,quei dati per estrarre solo le\Ninformazioni che volete. Dialogue: 0,0:03:23.52,0:03:25.59,Default,,0000,0000,0000,,Oh, e un'altra cosa. Dialogue: 0,0:03:25.59,0:03:30.94,Default,,0000,0000,0000,,Come si vedrà tra un momento, poiché questi \Ndati includono informazioni geografiche, Dialogue: 0,0:03:30.94,0:03:35.87,Default,,0000,0000,0000,,sarebbero più adatti ad essere mostrati \Nsu una mappa, piuttosto che come testo. Dialogue: 0,0:03:35.87,0:03:39.46,Default,,0000,0000,0000,,Ora, non lo faremo in questa lezione, \Nma ricordatelo, Dialogue: 0,0:03:39.46,0:03:44.47,Default,,0000,0000,0000,,perché ci ritorneremo quando arriveremo \Nalla lezione su mappe e posizione. Dialogue: 0,0:03:45.90,0:03:52.46,Default,,0000,0000,0000,,Per far funzionare quest'applicazione, \Nil codice deve creare una richiesta http, Dialogue: 0,0:03:52.46,0:03:57.91,Default,,0000,0000,0000,,inviarla a un server, recuperare i \Nrisultati, e quindi visualizzarli. Dialogue: 0,0:03:59.12,0:04:02.06,Default,,0000,0000,0000,,Android fornisce molte classi \Nper aiutare con questo. Dialogue: 0,0:04:03.45,0:04:07.00,Default,,0000,0000,0000,,Tre di cui parleremo ora sono \Nla classe Socket, Dialogue: 0,0:04:08.52,0:04:14.45,Default,,0000,0000,0000,,la classe HttpUrlConnection \Ne la classe AndroidHttpClient. Dialogue: 0,0:04:14.45,0:04:23.78,Default,,0000,0000,0000,,Ora lancerò l'applicazione\NNetworkingSockets. Dialogue: 0,0:04:25.49,0:04:26.57,Default,,0000,0000,0000,,Come potete vedere, Dialogue: 0,0:04:26.57,0:04:31.58,Default,,0000,0000,0000,,quest'applicazione all'inizio visualizza un solo \Npulsante etichettato "Load Data" (Carica i Dati). Dialogue: 0,0:04:32.92,0:04:39.04,Default,,0000,0000,0000,,Quando premo il pulsante, l'applicazione\Nemette una richiesta HTTP GET Dialogue: 0,0:04:39.04,0:04:45.52,Default,,0000,0000,0000,,a un server esterno, e quel server \Nrisponderà con del complesso Dialogue: 0,0:04:45.52,0:04:47.89,Default,,0000,0000,0000,,che contiene i dati \Ndei terremoti richiesti. Dialogue: 0,0:04:49.40,0:04:52.65,Default,,0000,0000,0000,,Ok, quindi ora premo \Nil pulsante "Load Data" Dialogue: 0,0:04:53.81,0:04:57.32,Default,,0000,0000,0000,,e si possono vedere i dati richiesti. Dialogue: 0,0:04:58.80,0:05:03.33,Default,,0000,0000,0000,,Diamo un'occhiata al codice sorgente per\Nvedere cosa fa per ottenere i dati. Dialogue: 0,0:05:03.33,0:05:05.50,Default,,0000,0000,0000,,Ora qui ho aperto l'applicazione \Nnell'IDE. Dialogue: 0,0:05:08.53,0:05:10.33,Default,,0000,0000,0000,,Ora aprirò l'Activity principale di Dialogue: 0,0:05:10.33,0:05:16.55,Default,,0000,0000,0000,,questa applicazione, e qui sto mostrando \Nil listener del tasto "Load Data". Dialogue: 0,0:05:18.94,0:05:22.57,Default,,0000,0000,0000,,Quando si preme questo pulsante, \Nl'applicazione crea, e Dialogue: 0,0:05:22.57,0:05:27.97,Default,,0000,0000,0000,,quindi esegue, un AsyncTask \Nchiamato HttpGetTask. Dialogue: 0,0:05:29.28,0:05:30.15,Default,,0000,0000,0000,,Diamo un'occhiata a quella classe. Dialogue: 0,0:05:32.28,0:05:37.20,Default,,0000,0000,0000,,La classe HttpGetTask dichiara \Nin primo luogo alcune variabili, che Dialogue: 0,0:05:37.20,0:05:41.01,Default,,0000,0000,0000,,vengono utilizzate nella creazione \Ndi una richiesta HTTP GET. Dialogue: 0,0:05:43.17,0:05:48.53,Default,,0000,0000,0000,,Quando viene chiamato il metodo execute, sul HttpGetTask, Dialogue: 0,0:05:48.53,0:05:50.47,Default,,0000,0000,0000,,viene chiamato il metodo \NdoInBackground. Dialogue: 0,0:05:52.29,0:05:57.49,Default,,0000,0000,0000,,E questo metodo inizia con la creazione \Ndi un nuovo Socket,che verrà connesso Dialogue: 0,0:05:57.49,0:06:07.40,Default,,0000,0000,0000,,al computer host, api.geonames.org \Nsulla porta HTTP standard, porta 80. Dialogue: 0,0:06:07.40,0:06:11.70,Default,,0000,0000,0000,,Successivamente, il codice ottiene \Nl'OutputStream del Socket, Dialogue: 0,0:06:11.70,0:06:17.67,Default,,0000,0000,0000,,e quindi scrive l'HTTP{\u1}GET{\u0}COMMAND, e questa \Nstringa sarà inviata al computer host, Dialogue: 0,0:06:18.86,0:06:22.83,Default,,0000,0000,0000,,che la interpreta come una HTTPGetRequest, Dialogue: 0,0:06:22.83,0:06:28.85,Default,,0000,0000,0000,,e quindi risponde inviando \Ni dati di risposta appropriati. Dialogue: 0,0:06:28.85,0:06:34.03,Default,,0000,0000,0000,,Quindi questo codice continua ottenendo\Nl'InputStream del Socket e Dialogue: 0,0:06:34.03,0:06:37.03,Default,,0000,0000,0000,,passandolo a un metodo \Nchiamato readStream. Dialogue: 0,0:06:38.74,0:06:43.83,Default,,0000,0000,0000,,Il metodo readStream infine legge i dati \Ndi risposta dall'InputStream del Socket. Dialogue: 0,0:06:43.83,0:06:48.57,Default,,0000,0000,0000,,e quindi restituisce la risposta \Ncome una singola stringa. Dialogue: 0,0:06:48.57,0:06:55.77,Default,,0000,0000,0000,,E questa stringa viene passata \Nal metodo onPostExecute che Dialogue: 0,0:06:55.77,0:07:01.58,Default,,0000,0000,0000,,viene eseguito sul thread principale e \Nche visualizza la risposta nella TextView. Dialogue: 0,0:07:02.74,0:07:05.23,Default,,0000,0000,0000,,Torniamo all'applicazione. Dialogue: 0,0:07:05.23,0:07:10.49,Default,,0000,0000,0000,,Si noterà che il testo di risposta include \Nnon solo i dati dei terremoti, ma Dialogue: 0,0:07:10.49,0:07:14.02,Default,,0000,0000,0000,,anche gli header della risposta HTTP. Dialogue: 0,0:07:14.02,0:07:18.00,Default,,0000,0000,0000,,Ora, di norma, non vorrei \Nmostrare questo testo qui. Dialogue: 0,0:07:18.00,0:07:20.77,Default,,0000,0000,0000,,Voglio solamente mostrare i dati dei terremoti. Dialogue: 0,0:07:20.77,0:07:24.71,Default,,0000,0000,0000,,Quindi avrei dovuto \Nanalizzare la risposta ed Dialogue: 0,0:07:24.71,0:07:26.64,Default,,0000,0000,0000,,estrarre solo i dati che volevo. Dialogue: 0,0:07:28.73,0:07:31.65,Default,,0000,0000,0000,,Inoltre, potreste aver notato \Nche non ho scritto alcun Dialogue: 0,0:07:31.65,0:07:36.49,Default,,0000,0000,0000,,codice per la gestione di errori necessario \Nper rendere quest'applicazione robusta. Dialogue: 0,0:07:37.83,0:07:42.42,Default,,0000,0000,0000,,E questi punti catturano abbastanza bene gli\Nsvantaggi nell'usare i Socket. Dialogue: 0,0:07:42.42,0:07:44.03,Default,,0000,0000,0000,,Il livello è molto basso, Dialogue: 0,0:07:44.03,0:07:47.17,Default,,0000,0000,0000,,puoi scrivere qualsiasi cosa \Ntu voglia sul socket, Dialogue: 0,0:07:47.17,0:07:53.72,Default,,0000,0000,0000,,ma in cambio hai bisogno di gestire \Ntutti i dettagli del fare le richieste HTTP, Dialogue: 0,0:07:53.72,0:07:58.63,Default,,0000,0000,0000,,tutta la gestione degli errori, e tutto \Nil processing delle risposte HTTP. Dialogue: 0,0:08:02.25,0:08:09.14,Default,,0000,0000,0000,,La prossima implementazione che vedremo usa la classe HttpUrlConnection. Dialogue: 0,0:08:09.14,0:08:13.06,Default,,0000,0000,0000,,Questa classe fornisce un'interfaccia\Ndi più alto livello, che gestisce più Dialogue: 0,0:08:13.06,0:08:18.99,Default,,0000,0000,0000,,dettagli del networking rispetto alla \Nclasse Socket, ma come vedremo tra breve, Dialogue: 0,0:08:18.99,0:08:24.14,Default,,0000,0000,0000,,ha anche una API meno flessibile \Ndella nostra ultima opzione, Dialogue: 0,0:08:24.14,0:08:27.30,Default,,0000,0000,0000,,la classe AndroidHttpClient. Dialogue: 0,0:08:28.59,0:08:32.54,Default,,0000,0000,0000,,Detto questo, voglio anche sottolineare \Nche il team Android non sta più Dialogue: 0,0:08:32.54,0:08:37.12,Default,,0000,0000,0000,,lavorando attivamente\Nsulla classe AndroidHttpClient, e Dialogue: 0,0:08:37.12,0:08:42.22,Default,,0000,0000,0000,,si sta concentrando sul miglioramento \Ndella classe che vedremo ora. Dialogue: 0,0:08:42.22,0:08:46.86,Default,,0000,0000,0000,,Quindi guardiamo l'applicazione \Ndi esempio, implementata questa volta Dialogue: 0,0:08:46.86,0:08:50.84,Default,,0000,0000,0000,,con la classe HttpUrlConnection. Dialogue: 0,0:08:53.10,0:08:57.49,Default,,0000,0000,0000,,Ora lancio l'applicazione NetworkingURL. Dialogue: 0,0:08:57.49,0:09:01.76,Default,,0000,0000,0000,,Come prima, quest'applicazione mostra \Ninizialmente un singolo pulsante Dialogue: 0,0:09:01.76,0:09:07.18,Default,,0000,0000,0000,,un singolo pulsante etichettato "Load Data" \Ne come prima, quando premo quel pulsante Dialogue: 0,0:09:07.18,0:09:11.74,Default,,0000,0000,0000,,l'applicazione emette \Nuna richiesta HTTP GET Dialogue: 0,0:09:11.74,0:09:13.48,Default,,0000,0000,0000,,a un server esterno, Dialogue: 0,0:09:13.48,0:09:17.49,Default,,0000,0000,0000,,e tale server risponderà \Ncon del testo complesso,\N Dialogue: 0,0:09:17.49,0:09:20.52,Default,,0000,0000,0000,,contenente i dati richiesti sui terremoti. Dialogue: 0,0:09:20.52,0:09:21.18,Default,,0000,0000,0000,,Ok, Dialogue: 0,0:09:21.18,0:09:23.28,Default,,0000,0000,0000,,quindi ora premo \Nil pulsante "Load Data". Dialogue: 0,0:09:24.80,0:09:28.70,Default,,0000,0000,0000,,Si possono vedere i dati richiesti\Napparire in una TextView. Dialogue: 0,0:09:29.74,0:09:34.67,Default,,0000,0000,0000,,Si noti, tuttavia, che stavolta gli header\Ndella risposta HTTP sono stati rimossi. Dialogue: 0,0:09:36.63,0:09:38.96,Default,,0000,0000,0000,,Diamo un'occhiata al codice sorgente \Ne vediamo come funziona. Dialogue: 0,0:09:41.44,0:09:44.13,Default,,0000,0000,0000,,Ora, qui ho l'applicazione \Naperta nell'IDE. Dialogue: 0,0:09:45.23,0:09:47.48,Default,,0000,0000,0000,,Ora apro la MainActivity di Dialogue: 0,0:09:47.48,0:09:53.14,Default,,0000,0000,0000,,di quest'applicazione, e qui mostro \Nil listener del pulsante "Load Data". Dialogue: 0,0:09:54.65,0:09:59.24,Default,,0000,0000,0000,,Come prima, quando si preme questo tasto, \Nl'applicazione crea e Dialogue: 0,0:09:59.24,0:10:02.64,Default,,0000,0000,0000,,quindi esegue un AsyncTask \Nchiamato HttpGetTask. Dialogue: 0,0:10:05.45,0:10:06.71,Default,,0000,0000,0000,,Guardiamo quella classe. Dialogue: 0,0:10:09.03,0:10:12.27,Default,,0000,0000,0000,,Quando il metodo execute viene \Nchiamato su HttpGetTask, Dialogue: 0,0:10:12.27,0:10:15.26,Default,,0000,0000,0000,,viene invocato il metodo doInBackground. Dialogue: 0,0:10:15.26,0:10:20.02,Default,,0000,0000,0000,,Tale metodo inizia creando \Nun nuovo oggetto URL e Dialogue: 0,0:10:20.02,0:10:24.83,Default,,0000,0000,0000,,passando una stringa URL per il servizio \Ndesiderato come parametro. Dialogue: 0,0:10:26.78,0:10:31.51,Default,,0000,0000,0000,,Il codice chiama quindi il metodo \NopenConnection sull'oggetto URL, Dialogue: 0,0:10:31.51,0:10:36.02,Default,,0000,0000,0000,,che restituisce una HttpUrlConnection. Dialogue: 0,0:10:36.02,0:10:40.98,Default,,0000,0000,0000,,Quest'oggetto viene poi memorizzato in una\Nvariabile chiamata httpURLConnection. Dialogue: 0,0:10:40.98,0:10:46.94,Default,,0000,0000,0000,,Il codice prosegue \Nottenendo l'InputStream Dialogue: 0,0:10:46.94,0:10:51.00,Default,,0000,0000,0000,,della HttpUrlConnection\Ne passandola al metodo readStream. Dialogue: 0,0:10:52.65,0:10:56.93,Default,,0000,0000,0000,,E come prima, il metodo readStream\Nlegge i dati di risposta dal flusso Dialogue: 0,0:10:56.93,0:11:02.17,Default,,0000,0000,0000,,di input del Socket, poi restituisce \Nla risposta come una singola stringa.\N Dialogue: 0,0:11:03.31,0:11:08.98,Default,,0000,0000,0000,,Questa volta, però, la HttpUrlConnection\Nrimuove gli header Dialogue: 0,0:11:08.98,0:11:13.54,Default,,0000,0000,0000,,della risposta HTTP e gestisce \Nil controllo degli errori per te. Dialogue: 0,0:11:15.14,0:11:19.79,Default,,0000,0000,0000,,Ora questa stringa viene quindi passata \Nal metodo onPostExecute, Dialogue: 0,0:11:19.79,0:11:22.46,Default,,0000,0000,0000,,che mostra la risposta in una TextView. Dialogue: 0,0:11:25.12,0:11:27.75,Default,,0000,0000,0000,,La terza classe è AndroidHttpClient. Dialogue: 0,0:11:29.30,0:11:35.19,Default,,0000,0000,0000,,Questa classe è un'implementazione del \NDefaultHttpClient del progetto Apache Dialogue: 0,0:11:36.38,0:11:39.30,Default,,0000,0000,0000,,e permette una grande personalizzazione. Dialogue: 0,0:11:39.30,0:11:45.21,Default,,0000,0000,0000,,In particolare, la classe divide \Nla transazione HTTP in un Dialogue: 0,0:11:45.21,0:11:48.94,Default,,0000,0000,0000,,oggetto richiesta \Ne in un oggetto risposta. Dialogue: 0,0:11:48.94,0:11:53.94,Default,,0000,0000,0000,,Quindi si possono creare sottoclassi che \Npersonalizzano la gestione delle richieste Dialogue: 0,0:11:53.94,0:11:55.68,Default,,0000,0000,0000,,e delle loro risposte. Dialogue: 0,0:11:55.68,0:11:59.45,Default,,0000,0000,0000,,Ora conoscete già l'aspetto \Ndell'applicazione, quindi Dialogue: 0,0:11:59.45,0:12:02.64,Default,,0000,0000,0000,,quindi saltiamo direttamente al codice ed\Nesaminiamo l'implementazione. Dialogue: 0,0:12:05.47,0:12:10.37,Default,,0000,0000,0000,,Ora, qui ho aperto l'applicazione Dialogue: 0,0:12:10.37,0:12:11.29,Default,,0000,0000,0000,,NetworkingAndroidHttpClient nell'IDE. Dialogue: 0,0:12:13.05,0:12:18.35,Default,,0000,0000,0000,,Ora apro la MainActivity di questa \Napplicazione, e andiamo direttamente Dialogue: 0,0:12:18.35,0:12:25.29,Default,,0000,0000,0000,,alla classe HttpGetTask.\NTale classe inizia creando un nuovo Dialogue: 0,0:12:25.29,0:12:30.91,Default,,0000,0000,0000,,oggetto AndroidHttpClient, chiamando \Nil metodo newInstance della classe. Dialogue: 0,0:12:32.71,0:12:38.48,Default,,0000,0000,0000,,Quando viene chiamato il metodo \NdoInBackground, il codice crea Dialogue: 0,0:12:38.48,0:12:42.65,Default,,0000,0000,0000,,un oggetto HttpGet, passando la \Nstringa URL per quella richiesta. Dialogue: 0,0:12:43.71,0:12:47.32,Default,,0000,0000,0000,,Quindi, crea un oggetto ResponseHandler. Dialogue: 0,0:12:47.32,0:12:51.48,Default,,0000,0000,0000,,Quest'oggetto è responsabile \Ndella gestione della risposta Dialogue: 0,0:12:51.48,0:12:57.56,Default,,0000,0000,0000,,alla richiesta HttpGet: in questo caso, \Nil ResponseHandler è del tipo Dialogue: 0,0:12:57.56,0:13:03.48,Default,,0000,0000,0000,,BasicResponseHandler, che restituirà il\Ncorpo della risposta. Dialogue: 0,0:13:03.48,0:13:07.51,Default,,0000,0000,0000,,Vedremo un ResponseHandler più complesso \Npiù avanti in questa lezione. Dialogue: 0,0:13:09.29,0:13:15.68,Default,,0000,0000,0000,,E, infine, la richiesta e il ResponseHandler \Nvengono passati al metodo execute, Dialogue: 0,0:13:15.68,0:13:21.40,Default,,0000,0000,0000,,che invia la richiesta e ottiene \Nla risposta, passandola attraverso il Dialogue: 0,0:13:21.40,0:13:29.09,Default,,0000,0000,0000,,ResponseHandler, e il risultato di tutto \Nquesto viene poi passato ad onPostExecute, Dialogue: 0,0:13:29.09,0:13:31.34,Default,,0000,0000,0000,,che mostra la risposta in un campo di testo.