Skip to content

Instantly share code, notes, and snippets.

@mark-cooper
Created December 17, 2011 20:43
Show Gist options
  • Save mark-cooper/1491327 to your computer and use it in GitHub Desktop.
Save mark-cooper/1491327 to your computer and use it in GitHub Desktop.
Java: Checks link validity by evaluating HTTP headers using JSoup
package net.libcode.www.frequentutilities.net;
import org.jsoup.Connection;
import org.jsoup.Connection.Response;
import org.jsoup.Jsoup;
public class NetUtilities {
/**
* Checks link validity by evaluating HTTP headers
* Requires JSoup library
* @param link a String URL to request
* @return true if request is successful or false
*/
public static boolean isValidLink(String link) {
boolean connected = false;
int attempts = 0;
while (!connected) {
if (attempts++ == 3)
break;
try {
Connection connection = Jsoup.connect(link);
connection.followRedirects(false);
Response response = connection.execute();
return response.statusCode() == 200;
} catch (Exception ex) {
System.out.println("Connection failure #" + attempts + ": " + link);
System.out.println(ex.getMessage());
}
}
return false;
}
/**
* @param args
*/
public static void main(String[] args) {
// All false
System.out.println(NetUtilities.isValidLink("www.xyzabc.boo"));
System.out.println(NetUtilities.isValidLink("http://<thermodynamiccomputing.com"));
System.out.println(NetUtilities.isValidLink("http://www.gurglegurglegurgle.com"));
System.out.println(NetUtilities.isValidLink("http://www.google.com/Boo"));
// All true
System.out.println(NetUtilities.isValidLink("http://www.google.com"));
System.out.println(NetUtilities.isValidLink("http://www.libcode.net"));
System.out.println(NetUtilities.isValidLink("http://slisweb.sjsu.edu/audience/current.htm"));
System.out.println(NetUtilities.isValidLink("http://sonomalibrary.org/history/archive/?p=collections/controlcard&id=19"));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment