2011-06-02 4 views
0

Possible en double:
Java HTTP getResponseCode returns 200 for non-existent URLDétection des URL valides

Bonjour, mon but est de construire une application qui détermine la validité des liens HTML, mais dans mon code suivant:

try 
{  
// create the HttpURLConnection 
URL url = new URL("http://www.thisurldoesnotexist"); 
HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
System.out.println("Response code is " + connection.getResponseCode()); 
} 

l'URL non-sens se résout à une adresse IP, ce que je ne m'attendais pas, et le code retu rns le produit: "Le code de réponse est 200"

Il semble que mon approche pour distinguer les pages réelles des pages inexistantes soit erronée. Est-ce que quelqu'un sait si j'applique les mauvais outils pour déterminer la validité des pages Web. . . c'est-à-dire, existe-t-il un meilleur moyen de différencier les pages Web existantes des pages non existantes. . . merci beaucoup,

+3

Vous avez déjà posé cette question: [Java HTTP getResponseCode renvoie 200 pour une URL inexistante] (http://stackoverflow.com/questions/6211251/java-http-getresponsecode-returns-200-for-non- URL-existante). Vérifiez les réponses là-bas. – dogbane

+2

S'il vous plaît ne pas poster la même question deux fois. –

Répondre

0

Vous pouvez:

  1. Resolve l'adresse IP de l'hôte de la page
  2. Essayez de vous connecter au port 80 sur l'adresse IP résolue à l'aide des prises simples

Cependant, cela ajoutera de la complexité car vous devrez faire une simple requête GET via le socket. Ensuite, validez la réponse pour être certain que c'est en fait un serveur HTTP fonctionnant sur le port 80.

NMap pourrait peut-être vous aider ici.