Autore Topic: [Eclipse+adt] Far interagire Android ed un WEB SERVICE  (Letto 1990 volte)

Offline helldron

  • Utente junior
  • **
  • Post: 68
  • Respect: 0
    • Mostra profilo
[Eclipse+adt] Far interagire Android ed un WEB SERVICE
« il: 10 Settembre 2010, 12:03:11 CEST »
0
Ciao a tutti,
vorrei potermi collegare ad un Web Service che gira su un application server (come Tomcat o GlassFish) da un'attività Android.

Mi hanno consigliato di creare un WS Client con Eclipse e dirgli qual'è il WSDL del WS in modo che lui generi delle classi stub necessarie.

Mi chiedevo però in che modo Android gestisce il collegamento al WS.
Ossia quali classi e metodi potrei sfruttare per recuperare i dati da un Web Service e, a livello di logica, dove potrei inserire il codice?? Nel metodo onCreate()??

Al limite conoscete qualche tutorial valido??

Grazie  :-)

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:[Eclipse+adt] Far interagire Android ed un WEB SERVICE
« Risposta #1 il: 10 Settembre 2010, 12:15:54 CEST »
0
Non so se può fare al caso tuo, ma in questo tutorial minimale ( [facile] HttpBookSearch: AsyncTask, HttpClient, XML parsing, ProgressDialog - Android Developers Italia ) si inserisce il numero ISBN di un libro e si usa il servizio di GoogleBookSearch per reperire titolo e autore.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:[Eclipse+adt] Far interagire Android ed un WEB SERVICE
« Risposta #2 il: 10 Settembre 2010, 19:06:11 CEST »
0
Prova a dare un occhio a questo thread SOAP Client per android - Android Developers Italia
Ti consiglio comunque di gestire le chiamate in uno o più thread dedicati, lasciando libero il thread della UI.

Una googlatina comunque ti fornirebbe tonnellate di esempi :)

Offline helldron

  • Utente junior
  • **
  • Post: 68
  • Respect: 0
    • Mostra profilo
Re:[Eclipse+adt] Far interagire Android ed un WEB SERVICE
« Risposta #3 il: 11 Settembre 2010, 10:08:33 CEST »
0
Mmm..mi stai dicendo che in OnCreate() dovrei creare, ad esempio, un bottone che mi fa partire un thread che potrebbe essere una classe privata dell'attività principale, che sarà la responsabile della comunicazione con il web service? Almeno è questo quello che ho capito da un tutorial del forum che parlava di "aggiornare la UI".

Sembra pulito dal punto di vista della programmazione ma potrebbe crearmi più problemi del previsto dato che dovrò sbattermi anche con il far funzionare il WS..

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:[Eclipse+adt] Far interagire Android ed un WEB SERVICE
« Risposta #4 il: 17 Settembre 2010, 00:49:53 CEST »
0
la comunicazione con il web service, ti consiglio di farla in ogni caso in un thread separato, di modo da non bloccare la UI.
hai considerato l'approccio Rest al posto di soap?

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:[Eclipse+adt] Far interagire Android ed un WEB SERVICE
« Risposta #5 il: 17 Settembre 2010, 08:25:26 CEST »
0
Sembra pulito dal punto di vista della programmazione ma potrebbe crearmi più problemi del previsto dato che dovrò sbattermi anche con il far funzionare il WS..

Non so come hai organizzato l'applicazione e cosa fa in dettaglio, ma tieni conto che se il thread della UI si blocca (esempio per attesa di una risposta da un server), dopo 5 secondi Android chiude forzatamente l'applicazione. E' per questo che l'implementazione in thread separato non è tanto un'opzione, ma una necessità.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline helldron

  • Utente junior
  • **
  • Post: 68
  • Respect: 0
    • Mostra profilo
Re:[Eclipse+adt] Far interagire Android ed un WEB SERVICE
« Risposta #6 il: 17 Settembre 2010, 10:49:20 CEST »
0
Non so come hai organizzato l'applicazione e cosa fa in dettaglio, ma tieni conto che se il thread della UI si blocca (esempio per attesa di una risposta da un server), dopo 5 secondi Android chiude forzatamente l'applicazione. E' per questo che l'implementazione in thread separato non è tanto un'opzione, ma una necessità.
Considera che per mancanza di tempo ho deciso di mettere la chiamata al metodo che fa la request al WS in onResume() senza creare un altro thread che dovrei capire bene come si usa. Diciamo che confido nella bontà del server, certo se si dovesse impallare sempre allora sono guai..

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:[Eclipse+adt] Far interagire Android ed un WEB SERVICE
« Risposta #7 il: 17 Settembre 2010, 12:15:38 CEST »
0
Considera che per mancanza di tempo ho deciso di mettere la chiamata al metodo che fa la request al WS in onResume() senza creare un altro thread che dovrei capire bene come si usa. Diciamo che confido nella bontà del server, certo se si dovesse impallare sempre allora sono guai..

Io se fossi in te mi sforzerei di utilizzare un AsyncTask, è davvero semplice :)

Offline helldron

  • Utente junior
  • **
  • Post: 68
  • Respect: 0
    • Mostra profilo
Re:[Eclipse+adt] Far interagire Android ed un WEB SERVICE
« Risposta #8 il: 17 Settembre 2010, 12:17:49 CEST »
0
Io se fossi in te mi sforzerei di utilizzare un AsyncTask, è davvero semplice :)
Tra 3 giorni ho una consegna, e non si può rimandare, direi che posso sorvolare sul momento..cmq mi hanno detto che si tratta di millesecondi l'elaborazione di una request/response, non dovrebbe essere un dramma

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:[Eclipse+adt] Far interagire Android ed un WEB SERVICE
« Risposta #9 il: 17 Settembre 2010, 12:20:25 CEST »
0
Tra 3 giorni ho una consegna, e non si può rimandare, direi che posso sorvolare sul momento..cmq mi hanno detto che si tratta di millesecondi l'elaborazione di una request/response, non dovrebbe essere un dramma

Il mio era un consiglio, fai come preferisci :)
Comunque l'elaborazione può durare qualche millisecondo ma l'accesso alla rete ha una durata imprevedibile.
Ti invito a leggere: Designing for Responsiveness | Android Developers

Offline helldron

  • Utente junior
  • **
  • Post: 68
  • Respect: 0
    • Mostra profilo
Re:[Eclipse+adt] Far interagire Android ed un WEB SERVICE
« Risposta #10 il: 17 Settembre 2010, 12:40:32 CEST »
0
Il mio era un consiglio, fai come preferisci :)
Comunque l'elaborazione può durare qualche millisecondo ma l'accesso alla rete ha una durata imprevedibile.
Ti invito a leggere: Designing for Responsiveness | Android Developers
no ma infatti volevo usarli i thread, però calcolando il tempo che avevo ho deciso di fare una cosa un pò più sporca..eh che altro posso fare..

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:[Eclipse+adt] Far interagire Android ed un WEB SERVICE
« Risposta #11 il: 17 Settembre 2010, 12:48:40 CEST »
0
no ma infatti volevo usarli i thread, però calcolando il tempo che avevo ho deciso di fare una cosa un pò più sporca..eh che altro posso fare..

Può andare benissimo anche quello che hai fatto, se è una app dimostrativa o comunque provvisoria.
Se deve andare sul mercato, pensaci bene.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store