Android DefaultHTTPConnection con Keep-Alive no reutiliza la conexión TCP

Estoy tratando de reutilizar las conexiones HTTP con Keep Alive. El servidor es compatible con Keep Alive, envío los encabezados HTTP Connection-Keep-Alive y la conexión es FIN (iniciada por el cliente Android) inmediatamente después de recibir la respuesta. Un poco de ayuda sería apreciada.

Aquí algunos código:

DefaultHttpClient client = new DefaultHttpClient(); client.setKeepAliveStrategy(new DefaultConnectionKeepAliveStrategy()); client.setReuseStrategy(new DefaultConnectionReuseStrategy()); HttpParams params = client.getParams(); ClientConnectionManager mgr = client.getConnectionManager(); client = new DefaultHttpClient(new ThreadSafeClientConnManager(params, mgr.getSchemeRegistry()), params); HttpPost post = new HttpPost(URL); post.setHeader("Connection","Keep-Alive"); ByteArrayEntity entity = new ByteArrayEntity(requestBundle.postString().getBytes()); entity.setContentType("application/xml"); post.setEntity(entity); HttpResponse response = client.execute(post); 

Cuando compruebo los encabezados de solicitud HTTP, veo estos:

 Connection: Keep-Alive\r\n Content-Length: 459\r\n Content-Type: application/xml\r\n Host: xxx.yyy.com\r\n User-Agent: Apache-HttpClient/UNAVAILABLE (java 1.4)\r\n 

En los encabezados de respuesta HTTP veo estos:

 HTTP/1.1 200 OK\r\n Content-Type: application/xml\r\n Content-Length: 8049\r\n Date: Tue, 22 Jan 2013 03:14:40 GMT\r\n Server: lighttpd/1.4.31\r\n 

Observando las respuestas y otros paquetes TCP que pasan por la línea, está claro que el cliente de Android inicia un FIN basado en algunas configuraciones de cliente HTTP que no conozco, las cuales no son causadas por la configuración de Keep-Alive en el servidor. la respuesta HTTP no contiene el encabezado "Connection: close").

¡Por favor iluminame!

Saludos, Andrej

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.