2010-11-14 8 views
7

Je dois vérifier si une URL existe ou non. Je veux écrire une servlet pour ceci, c'est-à-dire pour vérifier si une URL existe ou non. Si l'URL entrée n'existe pas, il doit retourner un message.Vérifier si une URL existe ou non

+6

Une URL ne peut en général dire de ne pas exister. – SLaks

+0

pourquoi java doc? –

Répondre

0

Vous pouvez établir une connexion, récupérer le flux d'entrée et vérifier la présence de null.

22

Une meilleure solution pour 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 vous cherchez une autre URL essayer ce code

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; 
    } 

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

+2

'http' n'est pas le seul protocole/schéma dans une URL. –

+0

@Michael Konietzka Mise à jour répond probablement à votre commentaire –

+0

Je dois utiliser Httpclient et ses méthodes pour vérifier l'existence de l'url pouvez-vous s'il vous plaît dire comment utiliser le service httpClient.I a essayé d'écrire ce service dans un service, mais il donne exception. – ha22109

0

J'ai utilisé ce script bash pour urls de contrôle, mais il faut mettre tous les fichiers dans un fichier « 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 
Questions connexes