Tengo este gran error en mi aplicación que parece que no puedo resolver. Cada vez que hago una llamada a través de resto el siguiente código:HttpClient execute sigue dando ConnectTimeoutException
HttpGet request = new HttpGet(url + getParams());
HttpParams httpParameters = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParameters, 5000);
HttpConnectionParams.setSoTimeout(httpParameters, 10000);
DefaultHttpClient httpClient = new DefaultHttpClient(httpParameters);
httpClient.execute(request);
consigo el error en DDMS:
07-15 11:22:47.448: WARN/System.err(973): org.apache.http.conn.ConnectTimeoutException: Connect to (some ip-address) timed out
Pero a veces el código funciona perfecto y recibo mis datos como debería. También probé la llamada del servidor de reposo a través de un navegador web normal en mi computadora y eso siempre devuelve mis datos dentro de los 100 ms. Entonces, ¿qué estoy haciendo mal? También lo probé en otro dispositivo, pero eso me da el mismo problema. Estaría muy contento si alguien pudiera resolver mi problema :)
Th probablemente tiene que ver con una red lenta (¿estás usando Wi-Fi o 3G?). Intenta ejecutarlo en el emulador. Es posible que necesite aumentar el tiempo de espera de conexión y configurar un mecanismo de reintento. – kgiannakakis
Sí, pero con mis otras aplicaciones puedo obtener los datos solicitados todo el tiempo. Y con uno de los teléfonos estoy usando WiFi, pero ese me da excepciones tampoco. Y hasta donde yo sé, ¿httpclient tiene un mecanismo de reintento automático? – Martijn538
Aumente el tiempo de espera a 20-30 segundos. A veces, la línea puede estar ocupada y, por lo tanto, el tiempo de espera. –