Проверить неработающие ссылки

Я пытаюсь найти все неработающие ссылки на веб-странице с помощью Java. Вот код:

   private static boolean isLive(String link){

    HttpURLConnection urlconn = null;
    int res = -1;
    String msg = null;
    try{

        URL url = new URL(link);
        urlconn = (HttpURLConnection)url.openConnection();
        urlconn.setConnectTimeout(10000);
        urlconn.setRequestMethod("GET");
        urlconn.connect();
        String redirlink = urlconn.getHeaderField("Location");
        System.out.println(urlconn.getHeaderFields());
        if(redirlink != null && !url.toExternalForm().equals(redirlink))
            return isLive(redirlink);
        else
            return urlconn.getResponseCode()==HttpURLConnection.HTTP_OK;

    }catch(Exception e){

      System.out.println(e.getMessage());
      return false;

    }finally{

        if(urlconn != null)
            urlconn.disconnect();

    }


}

public static void main(String[] s){

    String link = "http://www.somefakesite.net";
    System.out.println(isLive(link));

}

Код из http://nscraps.com/Java/146-program-code-broken-link-checker.htm .

Этот код дает статус HTTP 200 для всех веб-страниц, включая неработающие. Например http://www.somefakesite.net/ дает следующие поля заголовка:

{null = [HTTP / 1.1 200 OK], Date = [Sun, 15 May 2011 18:51:29 GMT ], Transfer-Encoding = [chunked], Keep-Alive = [timeout = 4, max = 100], Connection = [Keep-Alive], Content-Type = [text / html], Server = [Apache / 2.2.15]. (Win32) PHP / 5.2.12], X-Powered-By = [PHP / 5.2.9-1]}

Даже если такие сайты не существуют, как классифицировать их как неработающую ссылку?

7
задан user754740 15 May 2011 в 18:59
поделиться