Autore Topic: Request Http da un'Activity  (Letto 971 volte)

Offline k3v1n

  • Utente junior
  • **
  • Post: 61
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung S3
Request Http da un'Activity
« il: 05 Marzo 2013, 21:53:41 CET »
0
Salve a tutti,

ho la necessità di recuperare dei dati da un servizio remoto che parla in JSON. Effettuo una chiamata http dal mio metodo onCreate ma ottengo il seguente errore:

03-05 20:51:12.612: E/AndroidRuntime(1617): FATAL EXCEPTION: main
03-05 20:51:12.612: E/AndroidRuntime(1617): java.lang.RuntimeException: Unable to start activity ComponentInfo{xxxxxxxxxxxxxxxxxxxxxxxxxxxxxActivity}: android.os.NetworkOnMainThreadException

Ho letto che sono obbligato a creare un task asincrono, è corretto?

Grazie

Luca

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Request Http da un'Activity
« Risposta #1 il: 05 Marzo 2013, 23:14:29 CET »
0
esatto, l'eccezione è esplicativa. NetworkOnMainThread.
Leggi le guidelines android!
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline eagledeveloper

  • Translate Team
  • Utente senior
  • ****
  • Post: 516
  • Respect: +37
    • Google+
    • 347516210
    • dark_pinz
    • @WandDStudios
    • Mostra profilo
    • W&D Studios
  • Dispositivo Android:
    HTC One X e HTC One
  • Play Store ID:
    W%26D+Studios
  • Sistema operativo:
    Ubuntu / Windows 7
Re:Request Http da un'Activity
« Risposta #2 il: 06 Marzo 2013, 09:51:18 CET »
0
Fai la richiesta Http in un altro thread.
I numeri contano molto di più del seme.

Offline rs94

  • Utente normale
  • ***
  • Post: 227
  • Respect: +21
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson Xperia Arc S
  • Sistema operativo:
    Windows 8
Re:Request Http da un'Activity
« Risposta #3 il: 06 Marzo 2013, 15:17:24 CET »
0
Se preferisci utilizza questa libreria http://loopj.com/android-async-http/ farà tutto il lavoro "sporco" per te :)
L'unica certezza è il dubbio.
Dubitare di se stessi è il primo segno di intelligenza.

Offline GennyAndroid

  • Utente junior
  • **
  • Post: 116
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Ace
  • Play Store ID:
    Gennaro Petito
  • Sistema operativo:
    Windows 7
Re:Request Http da un'Activity
« Risposta #4 il: 06 Marzo 2013, 20:38:35 CET »
0
Come ti è stato gia suggerito utilizza un asynctask, per parsare il JSON invece utilizza le classi che ti offre gia di persè android

fai così:

Codice (Java): [Seleziona]
HttpClient client = new DefaultHttpClient();
StringBuilder url = new StringBuilder(uri /* qui ci metti la tua url */);
HttpGet get = new HttpGet(url.toString());
HttpResponse r = client.execute(get);
int status = r.getStatusLine().getStatusCode();
if (status == 200){
        HttpEntity e = r.getEntity();
        String data = EntityUtils.toString(e);
        JSONObject root = new JSONObject(data);
}
« Ultima modifica: 06 Marzo 2013, 20:41:25 CET da GennyAndroid »