Com.android.volley.NoConnectionError después de detener la aplicación
Estoy escribiendo mi aplicación con Google Volley y Gson para hablar con un servicio REST con OkHttp como HTTP-Stack. Eso funciona bien la mayoría del tiempo pero cuando hago una pausa en mi aplicación y vuelvo a ella las peticiones HTTP no funcionan con esta Excepción:
09-08 19:29:19.611: E/ASDF(21827): com.android.volley.NoConnectionError: java.io.EOFException 09-08 19:29:19.611: E/ASDF(21827): at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:125) 09-08 19:29:19.611: E/ASDF(21827): at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:105) 09-08 19:29:19.611: E/ASDF(21827): Caused by: java.io.EOFException 09-08 19:29:19.611: E/ASDF(21827): at java.util.zip.GZIPInputStream.readFully(GZIPInputStream.java:206) 09-08 19:29:19.611: E/ASDF(21827): at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:98) 09-08 19:29:19.611: E/ASDF(21827): at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:81) 09-08 19:29:19.611: E/ASDF(21827): at com.squareup.okhttp.internal.http.HttpEngine.initContentStream(HttpEngine.java:461) 09-08 19:29:19.611: E/ASDF(21827): at com.squareup.okhttp.internal.http.HttpEngine.readResponse(HttpEngine.java:659) 09-08 19:29:19.611: E/ASDF(21827): at com.squareup.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:346) 09-08 19:29:19.611: E/ASDF(21827): at com.squareup.okhttp.internal.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:295) 09-08 19:29:19.611: E/ASDF(21827): at com.squareup.okhttp.internal.http.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:489) 09-08 19:29:19.611: E/ASDF(21827): at com.squareup.okhttp.internal.http.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:136) 09-08 19:29:19.611: E/ASDF(21827): at com.android.volley.toolbox.HurlStack.performRequest(HurlStack.java:109) 09-08 19:29:19.611: E/ASDF(21827): at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:93) 09-08 19:29:19.611: E/ASDF(21827): ... 1 more
Eso sucede al azar. No cada vez que detengo mi solicitud. Realmente no tengo ni idea de por dónde empezar.
- ¿Cómo puedo fijar un certificado con OKHTTP cuadrado?
- PATCH Verb en Android (OkHttp, Volley, Retrofit ...)
- Android - OkHttp interceptor - respuesta ya "consumida"
- OkHTTP y Picasso no funcionan juntos
- Android - Utilice OkHttp con Webview
- Retrofit + RxJava no puede almacenar en caché las respuestas, los encabezados de respuesta sospechados
- Native crash en /system/lib/libssl.so utilizando Retrofit
- Retrofit invoca el método failure () incluso cuando el código de estado de los encabezados es 200
- ¿Qué está causando HTTP FALLA: java.net.SocketException: Socket cerrado?
- ¿Cómo alertar al usuario utilizando Toast que la solicitud OkHttp devolvió algo distinto de 200?
- Retrofit detectó un OkHttp no admitido en el error classpath en OKHttp 2.0
- Causado por: java.lang.NoClassDefFoundError: Clase no encontrada usando el cargador de clase de arranque; No hay rastro de la pila disponible
- No se puede obtener la respuesta de OkHttp.body.toString () para devolver una cadena
Parece que este problema es causado por un error en Android que debería arreglarse !? El problema y su corrección se describen aquí: Edición de Android 24672
Así que agregar este pedazo de código a mi fábrica de OkHttp URLConnection arregló el problema de inmediato:
@Override protected HttpURLConnection createConnection(URL url) throws IOException { HttpURLConnection connection = client.open(url); // Fix for bug in Android runtime(!!!): // https://code.google.com/p/android/issues/detail?id=24672 connection.setRequestProperty("Accept-Encoding", ""); return connection; }
Tuve este problema durante una hora. Si está intentando conectarse a un servicio de reposo de máquina virtual, debe cambiar el archivo de hosts en el emulador de Android.
Me quedé perplejo durante tanto tiempo porque ya había hecho esto. No creo que mantiene el archivo hosts entre reinicios del emulador. Que es molesto pero ahora yo (y tal vez usted) sabe …
- Custom DatePicker
- Uncaught TypeError: Object # <Object> no tiene ningún método 'exec' en el archivo: ///android_asset/www/index.html