我试图使用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));
}
Run Code Online (Sandbox Code Playgroud)
代码参考http://nscraps.com/Java/146-program-code-broken-link-checker.htm.
此代码为所有网页(包括损坏的网页)提供HTTP 200状态.例如, http://www.somefakesite.net/提供以下标题字段:
{null = [HTTP/1.1 200 OK],Date …