Ciao a tutti, premetto che sono al mio primo post.
Vi spiego subito il problema: ho realizzato un'applicazione j2me che effettua una chiamata http GET ad una pagina php che riceve i dati passati come parametri, li elabora e invia la risposta. Tutto funzionava bene sia con l'emulatore sia sul telefonino. Quindi un secondo passo è stato creare un nuovo thread che effettui la connessione così da evitare blocchi del programma e qui sono sorti i miei problemi... L'applicazione funziona perfettamente con l'emulatore ma una volta installata sul telefonino effettua correttamente la conessione ma la effettua solo una volta. Cioè se tento di effettuare una seconda connessione (ovviamente senza chiudere l'applicazione) non funziona. Ho provato diverse soluzioni come ad esempio effettuare una richiesta POST ma senza risolvere il problema. Vi posto le parti di codice interessate:
questa è la classe che effettua la connessione:
Così avvio la connessione:codice:public class HttpGet extends Thread { public void run(){ HttpConnection hcon = null; DataInputStream dis = null; StringBuffer responseMessage = new StringBuffer(); try { hcon = ( HttpConnection )Connector.open( url ); dis = new DataInputStream( hcon.openInputStream() ); int ch; while ( ( ch = dis.read() ) != -1 ) { responseMessage.append( (char) ch ); } } catch( Exception e ) { e.printStackTrace(); esito.setText(esito.getText() + "\n" + "ERRORE DI CONNESSIONE"); } finally { try { if ( hcon != null ) hcon.close(); if ( dis != null ) dis.close(); } catch ( IOException ioe ) { ioe.printStackTrace(); } } String risposta = responseMessage.toString(); } }
L'unica idea che mi è venuta è legata al fatto che forse una volta terminata la connessione il thread non si esaurisca automaticamente ma vada eliminiato manualmente però non saprei proprio come fare...Spero che qualcuno mi sia di aiuto. Graziecodice:String url = "indirizzo connessione?user=xxxxxx&pass=xxxxxx"; HttpGet invio = new HttpGet(); Thread th = new Thread(invio); th.start();