Javaを使用してWebページ内の壊れたリンクをすべて見つけようとしています。コードは次のとおりです。
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から参照されるコード。
このコードは、壊れたWebページを含むすべてのWebページにHTTP200ステータスを与えます。たとえば、 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] }
そのようなサイトは存在しませんが、リンク切れとして分類するにはどうすればよいですか?