Autore Topic: Problema connessione al db remoto  (Letto 793 volte)

Offline Semola

  • Utente junior
  • **
  • Post: 55
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei Nexus 6P
  • Sistema operativo:
    Ubuntu 13.04 on Dell XPS 14
Problema connessione al db remoto
« il: 20 Maggio 2013, 10:40:52 CEST »
0
Salve a tutti
Sto tentando di accedere a un db remoto, l'url che gli passo è di questo tipo
Codice: [Seleziona]
www.miohost.com/file.php?usr=mioUsername&psw=miaPassil codice java è questo
Codice (Java): [Seleziona]
String server= contattaIlServer(username.getText().toString(),password.getText().toString());
                        Log.e(ERROR_LOG, "Prima dell'elaborazione di json");
                        try {
                                JSONArray jsonArray = new JSONArray(server);
                                for (int i = 0; i < jsonArray.length(); i++)
                                {
                                        JSONObject jsonObject = jsonArray.getJSONObject(i);
                                        //v.add(jsonArray.getJSONObject(i).getString("Nome") +" "+ jsonArray.getJSONObject(i).getString("Cognome"));
                                        Toast.makeText(this, jsonArray.getJSONObject(i).getString("nome") +" "+ jsonArray.getJSONObject(i).getString("username") ,Toast.LENGTH_LONG).show();
                                }
                                Log.e(ERROR_LOG, "Dopo json");
                        } catch (Exception e) {
                                Toast.makeText(this, "Exception" + e,Toast.LENGTH_LONG).show();
                                Log.e(ERROR_LOG, "Eccezione json");
                                e.printStackTrace();                    }

Codice (Java): [Seleziona]
public String contattaIlServer(String usr, String psw) {      
      try {
         HttpClient client = new DefaultHttpClient();  
         HttpGet get = new HttpGet(url);
         Log.e(ERROR_LOG,"Dopo GET");
         HttpResponse responseGet = client.execute(get);
         Log.e(ERROR_LOG,"Dopo response");
         HttpEntity resEntityGet = responseGet.getEntity();  
         if (resEntityGet != null) {  
            Log.e(ERROR_LOG,EntityUtils.toString(resEntityGet));
         }
      } catch (Exception e) {
         Log.e(ERROR_LOG,"Eccezione response");  
         e.printStackTrace();
      }
      return url;
}
questo è il logcat:
Codice: [Seleziona]
05-20 10:35:44.338: D/dalvikvm(747): GC_FOR_ALLOC freed 82K, 2% free 8779K/8892K, paused 16ms, total 16ms
05-20 10:35:44.338: I/dalvikvm-heap(747): Grow heap (frag case) to 9.035MB for 456016-byte allocation
05-20 10:35:44.348: D/dalvikvm(747): GC_FOR_ALLOC freed 1K, 2% free 9222K/9340K, paused 11ms, total 11ms
05-20 10:35:44.358: D/dalvikvm(747): GC_CONCURRENT freed <1K, 2% free 9222K/9340K, paused 2ms+1ms, total 12ms
05-20 10:35:44.358: D/dalvikvm(747): WAIT_FOR_CONCURRENT_GC blocked 10ms
05-20 10:35:44.358: I/dalvikvm-heap(747): Grow heap (frag case) to 9.807MB for 811696-byte allocation
05-20 10:35:44.378: D/dalvikvm(747): GC_FOR_ALLOC freed <1K, 2% free 10015K/10136K, paused 16ms, total 16ms
05-20 10:35:44.388: D/dalvikvm(747): GC_CONCURRENT freed 3K, 2% free 10018K/10136K, paused 2ms+2ms, total 12ms
05-20 10:35:44.388: D/dalvikvm(747): WAIT_FOR_CONCURRENT_GC blocked 9ms
05-20 10:35:44.398: I/dalvikvm-heap(747): Grow heap (frag case) to 10.245MB for 456016-byte allocation
05-20 10:35:44.408: D/dalvikvm(747): GC_FOR_ALLOC freed 445K, 6% free 10018K/10584K, paused 14ms, total 14ms
05-20 10:35:44.428: D/dalvikvm(747): GC_FOR_ALLOC freed <1K, 6% free 10018K/10584K, paused 14ms, total 14ms
05-20 10:35:44.428: I/dalvikvm-heap(747): Grow heap (frag case) to 10.583MB for 811696-byte allocation
05-20 10:35:44.438: D/dalvikvm(747): GC_FOR_ALLOC freed <1K, 6% free 10810K/11380K, paused 12ms, total 12ms
05-20 10:35:44.468: D/dalvikvm(747): GC_CONCURRENT freed <1K, 5% free 10815K/11380K, paused 2ms+3ms, total 26ms
05-20 10:35:44.478: E/WL(747): Avvio l'apps
05-20 10:35:44.528: D/libEGL(747): loaded /system/lib/egl/libEGL_adreno200.so
05-20 10:35:44.528: D/libEGL(747): loaded /system/lib/egl/libGLESv1_CM_adreno200.so
05-20 10:35:44.538: D/libEGL(747): loaded /system/lib/egl/libGLESv2_adreno200.so
05-20 10:35:44.538: I/Adreno200-EGL(747): <eglInitialize:269>: EGL 1.4 QUALCOMM build: Nondeterministic AU_full_mako_PARTNER-ANDROID/JB-MR1-DEV_CL2961380_release_AU (CL2961380)
05-20 10:35:44.538: I/Adreno200-EGL(747): Build Date: 12/10/12 Mon
05-20 10:35:44.538: I/Adreno200-EGL(747): Local Branch:
05-20 10:35:44.538: I/Adreno200-EGL(747): Remote Branch: m/partner-android/jb-mr1-dev
05-20 10:35:44.538: I/Adreno200-EGL(747): Local Patches: NONE
05-20 10:35:44.538: I/Adreno200-EGL(747): Reconstruct Branch: NOTHING
05-20 10:35:44.568: D/OpenGLRenderer(747): Enabling debug mode 0
05-20 10:35:44.788: E/SpannableStringBuilder(747): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
05-20 10:35:44.788: E/SpannableStringBuilder(747): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
05-20 10:35:46.991: E/WL(747): Dopo GET
05-20 10:35:47.011: E/WL(747): Eccezione response
05-20 10:35:47.011: W/System.err(747): android.os.NetworkOnMainThreadException
05-20 10:35:47.011: W/System.err(747):         at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117)
05-20 10:35:47.011: W/System.err(747):         at java.net.InetAddress.lookupHostByName(InetAddress.java:385)
05-20 10:35:47.011: W/System.err(747):         at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
05-20 10:35:47.011: W/System.err(747):         at java.net.InetAddress.getAllByName(InetAddress.java:214)
05-20 10:35:47.011: W/System.err(747):         at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:137)
05-20 10:35:47.011: W/System.err(747):         at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
05-20 10:35:47.011: W/System.err(747):         at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
05-20 10:35:47.011: W/System.err(747):         at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
05-20 10:35:47.011: W/System.err(747):         at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
05-20 10:35:47.011: W/System.err(747):         at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
05-20 10:35:47.011: W/System.err(747):         at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
05-20 10:35:47.011: W/System.err(747):         at com.wenlong.LoginActivity.readTwitterFeed(LoginActivity.java:56)
05-20 10:35:47.011: W/System.err(747):         at com.wenlong.LoginActivity.onClick(LoginActivity.java:127)
05-20 10:35:47.011: W/System.err(747):         at android.view.View.performClick(View.java:4204)
05-20 10:35:47.011: W/System.err(747):         at android.view.View$PerformClick.run(View.java:17355)
05-20 10:35:47.011: W/System.err(747):         at android.os.Handler.handleCallback(Handler.java:725)
05-20 10:35:47.011: W/System.err(747):         at android.os.Handler.dispatchMessage(Handler.java:92)
05-20 10:35:47.011: W/System.err(747):         at android.os.Looper.loop(Looper.java:137)
05-20 10:35:47.011: W/System.err(747):         at android.app.ActivityThread.main(ActivityThread.java:5041)
05-20 10:35:47.011: W/System.err(747):         at java.lang.reflect.Method.invokeNative(Native Method)
05-20 10:35:47.011: W/System.err(747):         at java.lang.reflect.Method.invoke(Method.java:511)
05-20 10:35:47.011: W/System.err(747):         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
05-20 10:35:47.011: W/System.err(747):         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
05-20 10:35:47.011: W/System.err(747):         at dalvik.system.NativeStart.main(Native Method)
05-20 10:35:47.011: E/WL(747): Prima dell'elaborazione di json
05-20 10:35:47.041: E/WL(747): Eccezione json
05-20 10:35:47.041: W/System.err(747): org.json.JSONException: Value http of type java.lang.String cannot be converted to JSONArray
05-20 10:35:47.041: W/System.err(747):         at org.json.JSON.typeMismatch(JSON.java:111)
05-20 10:35:47.041: W/System.err(747):         at org.json.JSONArray.<init>(JSONArray.java:91)
05-20 10:35:47.041: W/System.err(747):         at org.json.JSONArray.<init>(JSONArray.java:103)
05-20 10:35:47.041: W/System.err(747):         at com.wenlong.LoginActivity.onClick(LoginActivity.java:130)
05-20 10:35:47.041: W/System.err(747):         at android.view.View.performClick(View.java:4204)
05-20 10:35:47.041: W/System.err(747):         at android.view.View$PerformClick.run(View.java:17355)
05-20 10:35:47.041: W/System.err(747):         at android.os.Handler.handleCallback(Handler.java:725)
05-20 10:35:47.041: W/System.err(747):         at android.os.Handler.dispatchMessage(Handler.java:92)
05-20 10:35:47.041: W/System.err(747):         at android.os.Looper.loop(Looper.java:137)
05-20 10:35:47.041: W/System.err(747):         at android.app.ActivityThread.main(ActivityThread.java:5041)
05-20 10:35:47.041: W/System.err(747):         at java.lang.reflect.Method.invokeNative(Native Method)
05-20 10:35:47.041: W/System.err(747):         at java.lang.reflect.Method.invoke(Method.java:511)
05-20 10:35:47.041: W/System.err(747):         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
05-20 10:35:47.041: W/System.err(747):         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
05-20 10:35:47.041: W/System.err(747):         at dalvik.system.NativeStart.main(Native Method)
05-20 10:35:53.488: W/IInputConnectionWrapper(747): getExtractedText on inactive InputConnection
05-20 10:35:53.488: W/IInputConnectionWrapper(747): getTextBeforeCursor on inactive InputConnection
05-20 10:35:53.488: W/IInputConnectionWrapper(747): getSelectedText on inactive InputConnection
05-20 10:35:53.488: W/IInputConnectionWrapper(747): getTextAfterCursor on inactive InputConnection
05-20 10:35:53.488: W/IInputConnectionWrapper(747): getExtractedText on inactive InputConnection
05-20 10:35:53.488: W/IInputConnectionWrapper(747): getTextBeforeCursor on inactive InputConnection
05-20 10:35:53.488: W/IInputConnectionWrapper(747): getExtractedText on inactive InputConnection
05-20 10:35:53.488: W/IInputConnectionWrapper(747): getTextBeforeCursor on inactive InputConnection
05-20 10:35:53.488: W/IInputConnectionWrapper(747): getSelectedText on inactive InputConnection
05-20 10:35:53.488: W/IInputConnectionWrapper(747): getTextAfterCursor on inactive InputConnection
05-20 10:35:53.498: W/IInputConnectionWrapper(747): getExtractedText on inactive InputConnection
05-20 10:35:53.498: W/IInputConnectionWrapper(747): getTextBeforeCursor on inactive InputConnection
05-20 10:35:53.498: W/IInputConnectionWrapper(747): getSelectedText on inactive InputConnection
05-20 10:35:53.498: W/IInputConnectionWrapper(747): getTextAfterCursor on inactive InputConnection
05-20 10:35:53.498: W/IInputConnectionWrapper(747): beginBatchEdit on inactive InputConnection
05-20 10:35:53.498: W/IInputConnectionWrapper(747): endBatchEdit on inactive InputConnection
05-20 10:35:53.498: W/IInputConnectionWrapper(747): getExtractedText on inactive InputConnection
05-20 10:35:53.498: W/IInputConnectionWrapper(747): getTextBeforeCursor on inactive InputConnection
05-20 10:35:53.498: W/IInputConnectionWrapper(747): getSelectedText on inactive InputConnection
05-20 10:35:53.498: W/IInputConnectionWrapper(747): getTextAfterCursor on inactive InputConnection
05-20 10:35:53.498: W/IInputConnectionWrapper(747): beginBatchEdit on inactive InputConnection
05-20 10:35:53.498: W/IInputConnectionWrapper(747): setComposingRegion on inactive InputConnection
05-20 10:35:53.498: W/IInputConnectionWrapper(747): endBatchEdit on inactive InputConnection
05-20 10:35:53.498: W/IInputConnectionWrapper(747): getExtractedText on inactive InputConnection
05-20 10:35:53.498: W/IInputConnectionWrapper(747): getTextBeforeCursor on inactive InputConnection
05-20 10:35:53.498: W/IInputConnectionWrapper(747): getSelectedText on inactive InputConnection
05-20 10:35:53.498: W/IInputConnectionWrapper(747): getTextAfterCursor on inactive InputConnection

da quel che sono riuscito a capire c'è un errore nella response, però non capisco che gli prende
sembra tutto ok
per favore datemi una mano sto sbattendo qui sopra da ieri
grazie ;)
« Ultima modifica: 20 Maggio 2013, 10:47:51 CEST da Semola »

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Problema connessione al db remoto
« Risposta #1 il: 20 Maggio 2013, 10:47:09 CEST »
0
L'errore è android.os.NetworkOnMainThreadException. Cerca un po' nel forum per capire come risolvere ;)

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:Problema connessione al db remoto
« Risposta #2 il: 20 Maggio 2013, 10:48:26 CEST »
0
Citazione
05-20 10:35:47.011: W/System.err(747): android.os.NetworkOnMainThreadException

Stai cercando di eseguire una connessione di rete nel thread principale (quello di UI). E' sempre stato un errore, ma solo negli ultimi tempi viene segnalato direttamente a livello di Exception.

Dovresti spostare connessione di rete, ricezione ed elaborazione risposta in un Thread/AsyncTask separato.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline zorcraft

  • Utente junior
  • **
  • Post: 108
  • Respect: +5
    • Mostra profilo
  • Dispositivo Android:
    note
  • Play Store ID:
    zorcraft
Re:Problema connessione al db remoto
« Risposta #3 il: 20 Maggio 2013, 11:08:57 CEST »
0
Ciao, dal codice che hai postato ho notato che nella funzione contattaIlServer a HttpGet passi una variabile url che non e stata dichiarata e fai tornare la variabile url.
penso che tu debba dare ad url la tua stringa che dici all inizio con i vari GET e poi al return dai resEntityGet che dovrebbe contenere i dati elaborati in php.
oltre a questo magari lo hai già fatto , devi dare i permessi in manifest e la chiamata va fatta in un task differente al principale.
Mi scuso se la terminologia non è corretta ma sono agli inizi e cerco di imparare.

Offline Semola

  • Utente junior
  • **
  • Post: 55
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei Nexus 6P
  • Sistema operativo:
    Ubuntu 13.04 on Dell XPS 14
Re:Problema connessione al db remoto
« Risposta #4 il: 20 Maggio 2013, 12:16:26 CEST »
0
grazie a tutti

ho quasi risolto tutto, infatti adesso fà correttamente tutto che volevo, anche vedendo da questo topic
problemi nel collegare android a mysql/php - Android Developers Italia
che daniweb ha cortesemente aggioranto ad ogni step, sono riuscito a capire meglio come stava la situazione

mi è rimasto un unica cosa che ancora non mi funziona, anche sistemandolo come nel topic che ho linkato non mi funziona
il controllo della connessione... cioè questo
Codice (Java): [Seleziona]
ConnectivityManager connMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
                        NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
                        if (networkInfo != null && networkInfo.isConnected()) {
                                HttpGetTask task = new HttpGetTask();
                                task.execute(username.getText().toString(),password.getText().toString());
                        } else {
                                //non c'è connessione
                                pd.dismiss();
                                Toast.makeText(this, R.string.toast_connection_unavailable ,Toast.LENGTH_LONG).show();
                        }    

ecco il log
Codice: [Seleziona]
05-20 12:14:09.689: E/WL(14075): Avvio l'apps
05-20 12:14:10.030: E/SpannableStringBuilder(14075): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
05-20 12:14:10.030: E/SpannableStringBuilder(14075): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
05-20 12:14:13.694: E/AndroidRuntime(14075): FATAL EXCEPTION: main
05-20 12:14:13.694: E/AndroidRuntime(14075): java.lang.SecurityException: ConnectivityService: Neither user 10254 nor current process has android.permission.ACCESS_NETWORK_STATE.
05-20 12:14:13.694: E/AndroidRuntime(14075):         at android.os.Parcel.readException(Parcel.java:1425)
05-20 12:14:13.694: E/AndroidRuntime(14075):         at android.os.Parcel.readException(Parcel.java:1379)
05-20 12:14:13.694: E/AndroidRuntime(14075):         at android.net.IConnectivityManager$Stub$Proxy.getActiveNetworkInfo(IConnectivityManager.java:623)
05-20 12:14:13.694: E/AndroidRuntime(14075):         at android.net.ConnectivityManager.getActiveNetworkInfo(ConnectivityManager.java:425)
05-20 12:14:13.694: E/AndroidRuntime(14075):         at com.wenlong.LoginActivity.onClick(LoginActivity.java:110)
05-20 12:14:13.694: E/AndroidRuntime(14075):         at android.view.View.performClick(View.java:4204)
05-20 12:14:13.694: E/AndroidRuntime(14075):         at android.view.View$PerformClick.run(View.java:17355)
05-20 12:14:13.694: E/AndroidRuntime(14075):         at android.os.Handler.handleCallback(Handler.java:725)
05-20 12:14:13.694: E/AndroidRuntime(14075):         at android.os.Handler.dispatchMessage(Handler.java:92)
05-20 12:14:13.694: E/AndroidRuntime(14075):         at android.os.Looper.loop(Looper.java:137)
05-20 12:14:13.694: E/AndroidRuntime(14075):         at android.app.ActivityThread.main(ActivityThread.java:5041)
05-20 12:14:13.694: E/AndroidRuntime(14075):         at java.lang.reflect.Method.invokeNative(Native Method)
05-20 12:14:13.694: E/AndroidRuntime(14075):         at java.lang.reflect.Method.invoke(Method.java:511)
05-20 12:14:13.694: E/AndroidRuntime(14075):         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
05-20 12:14:13.694: E/AndroidRuntime(14075):         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
05-20 12:14:13.694: E/AndroidRuntime(14075):         at dalvik.system.NativeStart.main(Native Method)

edit:sono un fesso mi sa che ho scordato di dargli i permessi

Post unito: 20 Maggio 2013, 13:08:50 CEST
scusate ho un altro problema,L'async giustamente crea un thread a parte e va per fatti suoi, se io voglio attendere la fine di quel task prima di continuare l'esecuzione come becco l'evento?
grazie
« Ultima modifica: 20 Maggio 2013, 13:08:50 CEST da Semola, Reason: Merged DoublePost »

Offline DarnellNajanReed

  • Utente normale
  • ***
  • Post: 359
  • Respect: +49
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus One, Acer Iconia A500/501, Asus Transformer Prime, Galaxy ACE, Galaxy S Plus, Galaxy S Advance P, Galaxy Tab 2 7.0, Google Nexus 7
  • Play Store ID:
    Luigi Notaro
  • Sistema operativo:
    OS X 10.8.3
Re:Problema connessione al db remoto
« Risposta #5 il: 20 Maggio 2013, 14:39:08 CEST »
0
Citazione
ConnectivityService: Neither user 10254 nor current process has android.permission.ACCESS_NETWORK_STATE.
Il logcat è molto esplicito: non hai i permessi per leggere lo stato della rete. Basta modificare il manifest e aggiungere il permesso necessario.


Citazione
scusate ho un altro problema,L'async giustamente crea un thread a parte e va per fatti suoi, se io voglio attendere la fine di quel task prima di continuare l'esecuzione come becco l'evento?
grazie

Prova a dare un'occhiata all'onPostExecute di AsyncTask:
http://developer.android.com/reference/android/os/AsyncTask.html

Offline Semola

  • Utente junior
  • **
  • Post: 55
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei Nexus 6P
  • Sistema operativo:
    Ubuntu 13.04 on Dell XPS 14
Re:Problema connessione al db remoto
« Risposta #6 il: 20 Maggio 2013, 16:59:41 CEST »
0
si lo avevo notato dopo, che provolone che sono haha
comunque, c'è differenza se sono collegato in wifi o in 3g da parte dell'os?
se sono collegato in wifi tutto va bene
se sono in 3g crasha l'app

Offline zorcraft

  • Utente junior
  • **
  • Post: 108
  • Respect: +5
    • Mostra profilo
  • Dispositivo Android:
    note
  • Play Store ID:
    zorcraft
Re:Problema connessione al db remoto
« Risposta #7 il: 20 Maggio 2013, 17:16:03 CEST »
0
Probabilmente non riesce a dare un risultato in tempo quando sei in 3g
controlla che la tua app funzioni comunque anche se non ottiene risultato e cosi non dovrebbe più crasciare

Offline Semola

  • Utente junior
  • **
  • Post: 55
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei Nexus 6P
  • Sistema operativo:
    Ubuntu 13.04 on Dell XPS 14
Re:Problema connessione al db remoto
« Risposta #8 il: 20 Maggio 2013, 17:26:28 CEST »
0
il logcat mi dice così
Codice: [Seleziona]
05-20 17:20:59.926: E/log_tag(16820): Error converting result java.net.SocketException: Socket closed
05-20 17:20:59.936: E/WL(16820): trovato: null
05-20 17:20:59.936: E/AndroidRuntime(16820): FATAL EXCEPTION: main
05-20 17:20:59.936: E/AndroidRuntime(16820): java.lang.NullPointerException
05-20 17:20:59.936: E/AndroidRuntime(16820):         at org.json.JSONTokener.nextCleanInternal(JSONTokener.java:116)
05-20 17:20:59.936: E/AndroidRuntime(16820):         at org.json.JSONTokener.nextValue(JSONTokener.java:94)
05-20 17:20:59.936: E/AndroidRuntime(16820):         at org.json.JSONArray.<init>(JSONArray.java:87)
05-20 17:20:59.936: E/AndroidRuntime(16820):         at org.json.JSONArray.<init>(JSONArray.java:103)
05-20 17:20:59.936: E/AndroidRuntime(16820):         at com.wenlong.LoginActivity$HttpGetTask.onPostExecute(LoginActivity.java:166)
05-20 17:20:59.936: E/AndroidRuntime(16820):         at com.wenlong.LoginActivity$HttpGetTask.onPostExecute(LoginActivity.java:1)
05-20 17:20:59.936: E/AndroidRuntime(16820):         at android.os.AsyncTask.finish(AsyncTask.java:631)
05-20 17:20:59.936: E/AndroidRuntime(16820):         at android.os.AsyncTask.access$600(AsyncTask.java:177)
05-20 17:20:59.936: E/AndroidRuntime(16820):         at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
05-20 17:20:59.936: E/AndroidRuntime(16820):         at android.os.Handler.dispatchMessage(Handler.java:99)
05-20 17:20:59.936: E/AndroidRuntime(16820):         at android.os.Looper.loop(Looper.java:137)
05-20 17:20:59.936: E/AndroidRuntime(16820):         at android.app.ActivityThread.main(ActivityThread.java:5041)
05-20 17:20:59.936: E/AndroidRuntime(16820):         at java.lang.reflect.Method.invokeNative(Native Method)
05-20 17:20:59.936: E/AndroidRuntime(16820):         at java.lang.reflect.Method.invoke(Method.java:511)
05-20 17:20:59.936: E/AndroidRuntime(16820):         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
05-20 17:20:59.936: E/AndroidRuntime(16820):         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
05-20 17:20:59.936: E/AndroidRuntime(16820):         at dalvik.system.NativeStart.main(Native Method)
forse perchè va in timeout
giusto?
come posso fare per aumentare il tempo? è veramente brevissimo

Offline DarnellNajanReed

  • Utente normale
  • ***
  • Post: 359
  • Respect: +49
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus One, Acer Iconia A500/501, Asus Transformer Prime, Galaxy ACE, Galaxy S Plus, Galaxy S Advance P, Galaxy Tab 2 7.0, Google Nexus 7
  • Play Store ID:
    Luigi Notaro
  • Sistema operativo:
    OS X 10.8.3
Re:Problema connessione al db remoto
« Risposta #9 il: 20 Maggio 2013, 17:34:28 CEST »
0
Puoi aumentare il timeout all'infinito, ma c'è sempre la possibilità che qualcosa vada storto e il parsing del JSON fallisca (come pare sia questo il caso). Dunque, piuttosto che aumentare i tempi di timeout, mi curerei di gestire questa eventualità.

Offline zorcraft

  • Utente junior
  • **
  • Post: 108
  • Respect: +5
    • Mostra profilo
  • Dispositivo Android:
    note
  • Play Store ID:
    zorcraft
Re:Problema connessione al db remoto
« Risposta #10 il: 20 Maggio 2013, 17:37:00 CEST »
0
non penso che puoi aumentare il tempo.
Io di solito do qualcosa in pasto alla schermata dopo di che al thread do tutto il tempo di cui ha bisogno e appena ho un risultato rielaboro cio che ho in visualizzazione.
esempio se ho una lista gli passo un dato tipo "in collegamento"
quando il thread a finito di recuperare i dati lancio nuovamente alla lista i dati reali

spiegato un po male ma spero che ti possa aiutare

Offline DarnellNajanReed

  • Utente normale
  • ***
  • Post: 359
  • Respect: +49
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus One, Acer Iconia A500/501, Asus Transformer Prime, Galaxy ACE, Galaxy S Plus, Galaxy S Advance P, Galaxy Tab 2 7.0, Google Nexus 7
  • Play Store ID:
    Luigi Notaro
  • Sistema operativo:
    OS X 10.8.3
Re:Problema connessione al db remoto
« Risposta #11 il: 20 Maggio 2013, 17:56:29 CEST »
0
Certo che puoi gestire i tempi di timeout... e in modo anche abbastanza raffinato.
Basta usare un oggetto HttpConnectionParams da passare al DefaultHttpClient
HttpConnectionParams | Android Developers

Offline zorcraft

  • Utente junior
  • **
  • Post: 108
  • Respect: +5
    • Mostra profilo
  • Dispositivo Android:
    note
  • Play Store ID:
    zorcraft
Re:Problema connessione al db remoto
« Risposta #12 il: 20 Maggio 2013, 18:04:44 CEST »
0
vero l'ho anche usato , ma ricordo che in alcuni casi mi mandava in crash l'app.
infatti ho aggirato l'ostacolo come dicevo prima dando qualcosa al app prima e rielaborando il tutto appena ottenuto i dati che mi servivano

Offline Semola

  • Utente junior
  • **
  • Post: 55
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei Nexus 6P
  • Sistema operativo:
    Ubuntu 13.04 on Dell XPS 14
Re:Problema connessione al db remoto
« Risposta #13 il: 20 Maggio 2013, 18:14:22 CEST »
0
@zorcraft: non ho capito come fai XD
@DarnellNajanReed: volendo provare questa strada vorrei comunque risolvere il problema di json, come posso sistemarlo? consigli?

credo sia questo il giusto modo di usarlo
Codice (Java): [Seleziona]
HttpClient httpClient = new DefaultHttpClient();
final HttpParams httpParams = httpClient.getParams();
HttpConnectionParams.setConnectionTimeout(httpParams, 5000);
HttpConnectionParams.setSoTimeout(httpParams, 5000);

Post unito: 22 Maggio 2013, 09:20:55 CEST
up  :-P
« Ultima modifica: 22 Maggio 2013, 09:20:55 CEST da Semola, Reason: Merged DoublePost »