Posteriormente a investigar con especialistas en la materia, programadores de varias ramas y maestros hemos dado con la respuesta al problema y la compartimos en esta publicación.
Solución:
Encontré el problema después de horas de buscar en Internet y el código del proyecto: dentro del proyecto tengo una clase llamada JsonToPOJORequest
que amplía la clase Volley JsonRequest
. Esta es la clase que realmente realiza la solicitud de cada método en el servidor. Después de analizar un poco el código, encontré una llamada de método dentro del constructor, de la siguiente manera:
setRetryPolicy(new DefaultRetryPolicy(3*DefaultRetryPolicy.DEFAULT_TIMEOUT_MS, 0, 0));
dónde DefaultRetryPolicy.DEFAULT_TIMEOUT_MS
se establece en 2500 ms.
Debido a que la solicitud POST tenía muchos datos, lleva más tiempo enviar la solicitud y recibir la respuesta del servidor.
Parece que Volley no esperó lo suficiente a que llegara la respuesta y lanza un TimeoutError. Entonces, se realizó la solicitud, todo va bien en el servidor, pero el cliente (Android) no espera al servidor y recibe un error.
La solución fue configurar el parámetro Timeout para que fuera mayor o 0, así:
setRetryPolicy(new DefaultRetryPolicy(5*DefaultRetryPolicy.DEFAULT_TIMEOUT_MS, 0, 0));
setRetryPolicy(new DefaultRetryPolicy(0, 0, 0));
Las dos preguntas que quedan son:
1) ¿Por qué se tarda tanto en hacer la solicitud? -> 3*2500 = 7500ms es mucho tiempo (más de 7 segundos) para realizar una solicitud. Y esto no es un problema del servidor, ya que en iOS funciona bien.
2) ¿Por qué VolleyError se ve así?
com.android.volley.NoConnectionError: javax.net.ssl.SSLHandshakeException: javax.net.ssl.SSLProtocolException: SSL handshake aborted:
Debería ser TimeoutError y no NoConnectionError.
Puede encontrar más información sobre este error aquí, donde también deduje la solución: publicación doble de Android Volley cuando tiene una solicitud lenta
https://groups.google.com/forum/#!topic/volley-users/8PE9dBbD6iA
Sección de Reseñas y Valoraciones
Si conservas algún titubeo y capacidad de prosperar nuestro sección te insinuamos escribir una explicación y con deseo lo estudiaremos.