Java 确定URL是否存在?

Java 确定URL是否存在?,java,exception-handling,Java,Exception Handling,我有一个循环,它遍历许多URL。我的问题是,程序正在终端中写出每个url的内容,我只想忽略断开的url。如何确定URL是否引用某个内容 我是否被迫使用正在抛出的异常FileNotFoundException?因为它也会影响程序的其他部分,所以我想确保如果url被破坏,主while循环会直接跳到下一个迭代。异常是由我正在使用的方法引发的(在我无法更改的类中),我如何处理它 这是我的循环(简化): 因此openURL()正在捕获FileNotFoundException,并且终端中打印了很多内容,我

我有一个循环,它遍历许多URL。我的问题是,程序正在终端中写出每个url的内容,我只想忽略断开的url。如何确定URL是否引用某个内容

我是否被迫使用正在抛出的异常FileNotFoundException?因为它也会影响程序的其他部分,所以我想确保如果url被破坏,主while循环会直接跳到下一个迭代。异常是由我正在使用的方法引发的(在我无法更改的类中),我如何处理它

这是我的循环(简化):


因此openURL()正在捕获FileNotFoundException,并且终端中打印了很多内容,我只想忽略它们,如何做到这一点?

要验证字符串是否为有效URL,可以使用Apache commons validator,如下所示:

String[] schemes = {"http","https"}; // DEFAULT schemes = "http", "https", "ftp"
UrlValidator urlValidator = new UrlValidator(schemes);
if (urlValidator.isValid("ftp://foo.bar.com/")) {
   System.out.println("url is valid");
} else {
   System.out.println("url is invalid");
}

或者,即使您不想使用Apache common validator进行验证,您也可以使用如下内容:

try {
    URL url = new URL("http://www.yoursite.com/");
    URLConnection conn = url.openConnection();
    conn.connect();
} catch (MalformedURLException e) {
    // the URL is not in a valid form
} catch (IOException e) {
    // the connection couldn't be established
}

要验证字符串是否为有效URL,可以使用Apache commons validator,如下所示:

String[] schemes = {"http","https"}; // DEFAULT schemes = "http", "https", "ftp"
UrlValidator urlValidator = new UrlValidator(schemes);
if (urlValidator.isValid("ftp://foo.bar.com/")) {
   System.out.println("url is valid");
} else {
   System.out.println("url is invalid");
}

或者,即使您不想使用Apache common validator进行验证,您也可以使用如下内容:

try {
    URL url = new URL("http://www.yoursite.com/");
    URLConnection conn = url.openConnection();
    conn.connect();
} catch (MalformedURLException e) {
    // the URL is not in a valid form
} catch (IOException e) {
    // the connection couldn't be established
}

请定义“有效URL”。这是否意味着只是看起来格式良好,或者live网站返回200以获取请求?有效URL应返回live网站200。请定义“有效URL”。这是否意味着只是看起来格式良好,或者live Web站点返回200以获取请求?有效的URL应该返回live Web站点200。如何导入apache类?如果您使用的是
maven
,则可以查找依赖项,如果没有,您可以下载
jar
文件并将其放置在构建路径中。如何导入apache类?如果您使用
maven
,则可以查找依赖项,如果没有,则可以下载
jar
文件并将其放置在构建路径中。