Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Determinar si un link está Roto o no existe - JAVA

Estas en el tema de Determinar si un link está Roto o no existe - JAVA en el foro de Java en Foros del Web. Hola amigos como lo dice el encabezado estoy buscando determinar si un link que proporciona un usuario en mi sistema, en realidad existe o no, ...
  #1 (permalink)  
Antiguo 08/05/2015, 10:43
 
Fecha de Ingreso: abril-2015
Ubicación: Bogotá D.C - Colombia
Mensajes: 106
Antigüedad: 4 años, 7 meses
Puntos: 11
Mensaje Determinar si un link está Roto o no existe - JAVA

Hola amigos como lo dice el encabezado estoy buscando determinar si un link que proporciona un usuario en mi sistema, en realidad existe o no, pues de verdad me urge saberlo, he logrado dar una solución con javascript en donde generalmente por ajax solo verifico el resultado del error que generalmente si existe me da en el contexto de salida que el encabezado de ese sito existe de lo contrario me generará un error diferente diciendome que la petición no pudo ser resuelta, pero claramente no es una solución optima, por que se que en java se puede hacer eso, basado en que en php es posible según lo que he investigado...

Please si pueden ayudarme con ello por favor compartamen sus conocimientos acerca del tema Gracias :D
  #2 (permalink)  
Antiguo 08/05/2015, 16:01
 
Fecha de Ingreso: abril-2015
Ubicación: Bogotá D.C - Colombia
Mensajes: 106
Antigüedad: 4 años, 7 meses
Puntos: 11
Respuesta: Determinar si un link está Roto o no existe - JAVA

Hola amigos encontré la solución:

Aquí comparto un método para que observen como es la cosa: ;) generalmente tienen que llamar el metodo y pasarle el link de la página en donde se encuentra el archivo....

Generalmente está funcionando con Drive y con Dropbox, lo probe con Mediafire pero no funciona, en lo que podria decir, creo que es la manera en que mediafire maneja el contexto de las url's en donde se alojan sus archivos, asi que no es culpa de java no poder acceder al link... éxitos!

public static boolean verificarURL(String pagina) {
boolean respuesta;
try {
URL url = new URL(pagina);
InputStream is = url.openStream();
System.out.println("Abierto");
respuesta = true;
System.out.println("Archivo existe.");
} catch (Exception e) {
System.out.println("No existe el archivo");
respuesta = false;
e.printStackTrace();
}
return respuesta;
}
  #3 (permalink)  
Antiguo 11/05/2015, 14:51
Avatar de nup_  
Fecha de Ingreso: noviembre-2010
Mensajes: 265
Antigüedad: 9 años
Puntos: 32
Respuesta: Determinar si un link está Roto o no existe - JAVA

Hola:
No es tan sencillo como crees.
El código q pones lo q hace es conectarse al servidor pero no te dice si la página q buscas existe dentro de ese servidor.
Ejemplo: si ejecutas verificarURL("http://www.google.com/estonoexiste") te va a dar q existe.

Una forma de resolver esto es usar una conexión HTTP con la clase HttpUrlConnection:
Código:
URL url = new URL("http://example.com");
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
connection.setRequestMethod("GET");
connection.connect();

int code = connection.getResponseCode();
la función 'connection.getResponseCode()' te devuelve el código de estado para la página q pediste, puedes ver q significa cada código aquí:
http://es.wikipedia.org/wiki/Anexo:C...de_estado_HTTP

Uno código en los 200 siginifica q la petición fue respondida satisfactoriamente.

Nup_

Etiquetas: determinar, link, roto
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:23.