Como Mantener abierta la conexion entre ksoap2 y web services soap antre el cambio de red 3g,H,etc.?

29 views
Skip to first unread message

Eugenio Peña

unread,
Jun 13, 2017, 2:15:03 PM6/13/17
to desarrolladores-android
Hola es la primera pregunta que realizo y espero tener un buen resultado de antemano agradezco su apoyo.

Tengo una APP que requiere consumir un Web Services SOAP. 
Actualmente funciona correctamente en conexiones Wiffi o Datos Móviles en los que la señal es "Estable", pero tengo problemas cuando la señal de es inestable (Wiffi que se desconecta o conecta a cada momento, Datos Móviles saltando de 3G a H, etc), ya que en zonas en donde la conexión es muy inestable simplemente no encuentra el Web Services y termina saliendo por Time Out.

El problema no seria tan grabe si simplemente no se comunicara, pero el problema empieza cuando logra ejecutar el método del Web Services pero por alguna razón se queda esperando la respuesta y nunca llega. 
Al revisar el log de mi Web Services, noto que la respuesta se envió en menos de 1 segundo, lo cual es normal, pero en mi APP no recibo nada.

Incluso implemente un método si por alguna razón salgo por TimeOut intente una confirmación para validar si se opero o no el movimiento anterior, pero es el mismo caso.

private Map<String, String> EjecutarMetodo(String params, boolean timeout){
int msl = 15000;
if (timeout){
msl = 5000;
}

String URL = wsParam.getUrl(Integer.parseInt(params));
SoapSerializationEnvelope SOBRE = wsParam.getSobre(Integer.parseInt(params));
Map<String, String> respons = new HashMap<String , String>();
// Modelo el request
Metodo request = new Metodo(metodo, datos, actividad);
// Modelo el Sobre
SOBRE.setOutputSoapObject(request.sobre());
// Modelo el transporte
try {
HttpTransportSE transporte = new HttpTransportSE(Proxy.NO_PROXY, URL, msl);
transporte.debug = true;
//System.setProperty("http.keepAlive", "false");
// Llamada
transporte.call(request.getSoapAction(), SOBRE);
SoapObject resp = (SoapObject) SOBRE.getResponse();
respons = request.respuesta(resp,actividad);
} catch (SocketTimeoutException e) {
e.printStackTrace();
respons.put("TIMEOUT", "No se establecido conexión.\n" +
"Por favor verifique su conexión a internet.\n" +
"Contacte a Soporte Tecnico");
} catch (Exception e) {
e.printStackTrace();
respons.put("ERROR", "No se establecido conexión.\n" +
"Por favor verifique su conexión a internet.\n" +
"Contacte a Soporte Tecnico");
}
return respons;
}

Cave mencionar que ejecuto un par de veces el llamado al Web Services y había pensado que talves saturaba la conexión o algo por el estilo, por lo que agregue el keepAlive que esta comentarizado, pero es el mismo resultado.

Agradezco sus comentarios apoyo en este detalle.

Eduardo Martin Cabrera

unread,
Jun 13, 2017, 2:41:16 PM6/13/17
to desarrollad...@googlegroups.com
Hola bienvenido, preguntas:
¿estas usando http://simpligility.github.io/ksoap2-android en su última version (3.6.2) ?

¿cuando hay error, podes revisar/ o hacer un volcado de los siguientes? luego del
transporte.call(request.getSoapAction(), SOBRE);

* transporte.requestDump * transporte.responseDump
¿probaste con timeouts mas cortos? si hay mala conexión mejor "fallar" rápido y volver a hacer la petición
¿El fallo ocurre en varios dispositivos?



--
Para participar es necesario que leas detenidamente las normas del grupo: https://goo.gl/xeTRQm
---
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a desarrolladores-android+unsub...@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a desarrolladores-android@googlegroups.com.
Visita este grupo en https://groups.google.com/group/desarrolladores-android.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/desarrolladores-android/49a3ecb1-ce71-44d2-a4a1-7da78da7ac1b%40googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Eugenio Peña

unread,
Jun 15, 2017, 2:51:19 PM6/15/17
to desarrolladores-android
Estoy trabajando con la versión 3.3.0, apenas la cambie a 3.6.2 para probar y ver si detecto alguna mejora para mi caso.
Reply all
Reply to author
Forward
0 new messages