2010-11-14 18 views
7

Necesito comprobar si existe una URL o no. Quiero escribir un servlet para esto, es decir, para verificar si existe una URL o no. Si la URL ingresada no existe, entonces debe devolver algún mensaje.Comprobando si existe una URL o no

+6

Una URL no puede, en general decirse que no existe. – SLaks

+0

¿por qué java doc? –

Respuesta

0

Puede hacer una conexión, recuperar el flujo de entrada y comprobar si no tiene nulo.

22

mejor solución para HTTP:

public static boolean exists(String URLName){ 
    try { 
     HttpURLConnection.setFollowRedirects(false); 
     // note : you may also need 
     //  HttpURLConnection.setInstanceFollowRedirects(false) 
     HttpURLConnection con = 
     (HttpURLConnection) new URL(URLName).openConnection(); 
     con.setRequestMethod("HEAD"); 
     return (con.getResponseCode() == HttpURLConnection.HTTP_OK); 
    } 
    catch (Exception e) { 
     e.printStackTrace(); 
     return false; 
    } 
    } 

Si buscas cualquier otro URL tratar este código

public static boolean exists(String URLName){ 
     boolean result = false; 
     try { 
      url = new URL("ftp://ftp1.freebsd.org/pub/FreeBSD/"); 
      //url = new URL("ftp://ftp1.freebsd.org/pub/FreeBSD123/");//this will fail 

      input = url.openStream(); 

      System.out.println("SUCCESS"); 
      result = true; 

      } catch (Exception ex) { 
       Logger.getLogger(NewClass.class.getName()).log(Level.SEVERE, null, ex); 
      } 
     return result; 
    } 

Fuente: http: //www.rgagnon.com/javadetails/ java-0059.html

+2

'http' no es el único protocolo/esquema en una URL. –

+0

@Michael Konietzka Update probablemente responde a su comentario –

+0

Necesito usar Httpclient y sus métodos para verificar la existencia de url ¿puede indicar cómo usar el servicio httpClient? Intenté escribir este servicio en un servidor, pero está dando una excepción. – ha22109

0

He utilizado esta escritura del golpe para las direcciones URL de verificación, pero es necesario poner todos los archivos en un archivo "urls.csv"

#!/bin/bash 

############################################### 
# mailto: [email protected] 
# checkurls 
# https://github.com/ggerman/checkurls/ 
# require curl 
############################################### 

url() { 
    cat urls.csv | 
    replace | 
    show 
} 

replace() { 
    tr ',' ' ' 
} 

show() { 
    awk '{print $1}' 
} 

url | \ 
while read CMD; do 
    echo $CMD 
    curl -Is $CMD | head -n 1 
done 
Cuestiones relacionadas