Tengo mi aplicación de Android que utiliza HttpClient para llegar a mi servlet desplegado en mi Tomcat. Está instalado en mi HTC Magic.HttpClient en Android: NoHttpResponseException a través de UMTS/3G
Si lo lanzo cuando estoy conectado a Wifi: funciona. Si lo inicio cuando estoy conectado a 3G (red de datos GSM): no funciona, pero se alcanza mi servlet. En otras palabras, parece que mi teléfono nunca obtener la respuesta:
Technical problem while receiving response.
org.apache.http.NoHttpResponseException: The target server failed to respond
at org.apache.http.impl.conn.DefaultResponseParser.parseHead(DefaultResponseParser.java:85)
at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:174)
at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:179)
at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:235)
at org.apache.http.impl.conn.AbstractClientConnAdapter.receiveResponseHeader(AbstractClientConnAdapter.java:259)
at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:279)
at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:121)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:410)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
Si utilizo el navegador web a través de 3G para activar la página HTML de prueba que se empaqueta con mi servlet, se llega a la misma servlet con éxito (la página recibe la respuesta).
¿Cómo podría depurar HttpClient o pedirle que volcara todo?
¿Alguien tiene alguna pista sobre lo que está pasando?
¿Ha comprobado los registros de su servidor para ver si la solicitud se está realizando a través del cable? Si es así, ¿sus registros le dicen algo (por ejemplo, error del lado del servidor)? – CommonsWare
El servidor recibe la solicitud (muy rápidamente) y da una respuesta con éxito, de la misma manera que lo hace con la solicitud que se recibe cuando está en wifi. Sería más eficiente poder depurar HttpClient ... La excepción se produce después de mucho tiempo, más o menos 10 minutos, así que supongo que realmente no hay nada que regrese al dispositivo. Si es cierto, algo está perdiendo mi respuesta en el aire. ¿Podría mi red GSM tener algún filtro? – Hubert
Curiosamente, hay un servidor de calamar instalado en proxy.cwg.net que parece ser la causa. ¿Pero por qué funciona con la página HTML de prueba y no con el HttpClient en la misma condición? – Hubert