PDA

Ver la Versión Completa : [ CONSULTA ] Como saber si una direccion web existe o no


kaiser75
28/11/18, 12:58:44
Sabeis si en Android se puede detectar si una direccion url existe en un servidor?, Necesito hacer unas consultas a un servidor, funciona correctamente a no ser que al hacerlas la direccion no exista o si el servidor esta caido etc :pensando:.

mocelet
28/11/18, 14:25:12
Tienes que mirar los códigos de respuesta de la petición, cómo depende de qué biblioteca estés usando.

Hay varios casos, lo primero es distinguir que no pueda conectar con el servidor (y entonces no sabes si existe o no) de si conectó bien.

Si conectó tendrás el código de la respuesta HTTP, 200 es que fue bien y tienes el recurso, 404 es no encontrado (no existe esa URL), 500 error interno del servidor (que no quiere decir que la URL exista o no), etc.

kaiser75
28/11/18, 18:04:56
No uso ninguna libreria mocelet, simplemente leo unarchivo de texto en un servidor con BufferedReader, lo que pasa es que si el servidor esta caido me lanza error
BufferedReader bufferReader = new BufferedReader(new InputStreamReader(textUrl.openStream()));//... etc, etc

mocelet
29/11/18, 08:51:46
OK, tienes que hacerlo en dos pasos, en vez de llamar a textUrl.openStream directamente, primero abre la conexión con "(HttpURLConnection) textUrl.openConnection". Asegúrate de que la variable donde lo guardas es del tipo HttpURLConnection y que haces el casting.

Si eso falla saltará una IOException que indica que ha habido un error al conectar con el servidor.

Si no falla, comprueba el código de respuesta con getResponseCode, si es 200 es que todo es correcto, si es 404 es no encontrado, en fin, los códigos de respuesta de HTTP habituales.

Si la respuesta es 200 y todo está bien puedes llamar al getInputStream para leer el contenido.

kaiser75
29/11/18, 10:07:19
Gracias mocelet, ahora si funciona perfectamente :ok: