Autore Topic: Connessione a servlet  (Letto 1662 volte)

Offline Agosteeno

  • Utente normale
  • ***
  • Post: 152
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson - Xperia Neo
  • Sistema operativo:
    Ubuntu 11.04
Connessione a servlet
« il: 21 Marzo 2011, 13:07:00 CET »
0
Salve a tutti, sto' facendo una applicazione su android, che cerca di comunicare con una servlet, scritta da me, che gira sulla stessa macchina dove gira l'emulatore (il motore e' tomcat). Per farli comunicare faccio semplicemente una cosa del genere:
Codice (Java): [Seleziona]
HttpClient client = new DefaultHttpClient();
                HttpGet httpGet = new HttpGet("indirizzo servlet, query string con parametro");
                try {
                        HttpResponse responseGet = client.execute(httpGet);
                        HttpEntity httpEntityGet = responseGet.getEntity();
                        InputStream isGet = httpEntityGet.getContent();
                        BufferedReader readerGet = new BufferedReader(
                                        new InputStreamReader(isGet));
                        String tempGet tempGet = readerGet.readLine();
                 }

E' corretto usare queste funzioni? Oppure dovrei fare roba diversa?
Ah, naturalmente questa roba sta' dentro un activity. Piu' precisamente sta' dentro un onClickListener(), perche' voglio che si connetta per ricevere un dato dopo che l'utente scrive un valore e poi pigi un bottone.
Se non sono stato abbastanza chiaro ditemi pure cosa nn vi torna. Ciao e grazie mille
Risparmia l'acqua, bevi birra...

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Connessione a servlet
« Risposta #1 il: 21 Marzo 2011, 13:11:36 CET »
0
L'unica aggiunta che farei è quella di mettere tutto dentro un thread, perché altrimenti diventa bloccante....
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline Agosteeno

  • Utente normale
  • ***
  • Post: 152
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson - Xperia Neo
  • Sistema operativo:
    Ubuntu 11.04
Re:Connessione a servlet
« Risposta #2 il: 21 Marzo 2011, 13:17:10 CET »
0
Grazie per la risposta. Non metto tutto dentro ad un thread apposito perche' deve essere bloccante. In ogni caso devo sviluppare un'applicazione single thread, quindi in ogni caso non lo userei. Piu' che altro, sto' cercando di usare quel codice, ma nn mi da' questa eccezione: java.net.SocketException: Permission deniend (maybe missing INTERNET permission).
Eppure ho aggiunto nel manifest la riga:
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" ></uses-permission>
che dovrebbe darmi questo permesso...
Qualche idea riguardo al possibile problema?
Risparmia l'acqua, bevi birra...

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Connessione a servlet
« Risposta #3 il: 21 Marzo 2011, 13:21:47 CET »
0
il permesso che gli hai settato serve ad accedere alle info relative alla connessione.
tu hai bisogno di android.permission.INTERNET (come ti suggeriva il logcat:P)
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline Agosteeno

  • Utente normale
  • ***
  • Post: 152
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson - Xperia Neo
  • Sistema operativo:
    Ubuntu 11.04
Re:Connessione a servlet
« Risposta #4 il: 21 Marzo 2011, 13:28:00 CET »
0
Che stupido, grazie mille! Ora cmq mi da' una belal eccezione tomcat. Mi dice che la connessione all'host e' rifiutata. Ora cerco di indagare su quale possa essere l'errore e se avro' altri problemi vi faro' sapere. Grazie mille! :)
Risparmia l'acqua, bevi birra...

Offline Agosteeno

  • Utente normale
  • ***
  • Post: 152
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson - Xperia Neo
  • Sistema operativo:
    Ubuntu 11.04
Re:Connessione a servlet
« Risposta #5 il: 21 Marzo 2011, 16:30:01 CET »
0
Credo di avere un problema di comprensione: io ho una servlet montata sul mio pc a questo indirizzo: http://localhost:8080/nomeProgetto/nomeServlet.

Quando nel codice del client che sta' sul dispositivo vado a fare una get come ho detto prima a questo indirizzo mi da' l'eccezione di tomcat che dicevo su. Che sia sbagliato il modo di chiamare la url? Non riesco a capire cosa possa essere!
Risparmia l'acqua, bevi birra...

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Connessione a servlet
« Risposta #6 il: 21 Marzo 2011, 16:50:11 CET »
0
la tua servlet risponde ad una get?
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline Agosteeno

  • Utente normale
  • ***
  • Post: 152
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson - Xperia Neo
  • Sistema operativo:
    Ubuntu 11.04
Re:Connessione a servlet
« Risposta #7 il: 21 Marzo 2011, 16:56:05 CET »
0
Si, la servlet risponde alla get e lo fa' correttamente. L'ho testata sia con un client java sia dal browser. Mi sono appena reso conto che se nella url invece di scrivere "localhost:8080..." scrivo "10.0.0.58:8080..." che e' il mio indirizzo ip va'. Ho trovato alcuni bug della mia applicazione, quindi ora devo aspettare un attimo per vedere se il problema era quello... Grazie cmq...
Risparmia l'acqua, bevi birra...

Offline slasher

  • Nuovo arrivato
  • *
  • Post: 37
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Emulatore ADT :-D
  • Sistema operativo:
    Windows Vista (purtroppo) \ Linux Ubuntu
Re:Connessione a servlet
« Risposta #8 il: 21 Marzo 2011, 17:02:41 CET »
0
il problema potrebbe essere proprio quello, android non supporta come url la notazione localhost oppure 127.0.0.1 devi usare l'ip vero e proprio  ;-)

Offline Kappa27

  • Nuovo arrivato
  • *
  • Post: 43
  • Respect: +2
    • kevvort
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Tab
  • Sistema operativo:
    Windows 7 x64 - Ubuntu 10.10
Re:Connessione a servlet
« Risposta #9 il: 21 Marzo 2011, 17:05:33 CET »
0
Si, la servlet risponde alla get e lo fa' correttamente. L'ho testata sia con un client java sia dal browser. Mi sono appena reso conto che se nella url invece di scrivere "localhost:8080..." scrivo "10.0.0.58:8080..." che e' il mio indirizzo ip va'. Ho trovato alcuni bug della mia applicazione, quindi ora devo aspettare un attimo per vedere se il problema era quello... Grazie cmq...

Dici nella url del browser/applicazione PC?
A scanso di equivoci: se metti localhost l'emulatore cercherà nel suo localhost e non sulla local del pc.

Offline Agosteeno

  • Utente normale
  • ***
  • Post: 152
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson - Xperia Neo
  • Sistema operativo:
    Ubuntu 11.04
Re:Connessione a servlet
« Risposta #10 il: 21 Marzo 2011, 17:08:45 CET »
0
Si... Che coglione che sono...
Risparmia l'acqua, bevi birra...

frusso

  • Visitatore
Re:Connessione a servlet
« Risposta #11 il: 21 Marzo 2011, 18:01:17 CET »
0
L'indirizzo IP che devi usare dall'emulatore per collegarti ad un tomcat sulla tua macchina è

http://10.0.2.2:8080

L'emulatore utilizza questo indirizzo per colelgarsi alla macchina sulla quale sta girando. Ovviamente quando rilasci l'applicazione quell'ìindirizzo non è più valido, quindi ti consiglio fin d'ora di metterlo in un file di configurazione. :-)

Ciao

Offline Agosteeno

  • Utente normale
  • ***
  • Post: 152
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson - Xperia Neo
  • Sistema operativo:
    Ubuntu 11.04
Re:Connessione a servlet
« Risposta #12 il: 21 Marzo 2011, 19:08:40 CET »
0
Grazie mille! :)
Risparmia l'acqua, bevi birra...