【问题标题】:How to check if given URL exists or not in Java and JavaScript如何检查给定的 URL 在 Java 和 JavaScript 中是否存在
【发布时间】:2019-12-13 06:01:51
【问题描述】:

我正在尝试检查 URL 是否存在并且当前正在使用此验证器:

boolean isValid = URLUtil.isValidUrl( "https://www.googlesgger.com/" );
  1. https://www.google.com // 有效网址
  2. https://www.googlesgger.com/ // 实际上它不是一个有效的 URL,但它显示了一个有效的 URL

实际上它验证 http 或 https 和 www 和 .com(它检查 URL 是否包含 http 或 https 和 www 和 .com 不验证给定的 URL 是否有效)

请帮助我如何检查给定的完整 URL 是否有效。

【问题讨论】:

  • 所以你想检查这个网址是否有任何内容?
  • https://www.googlesgger.com/ 是有效的 url 但不是现有域,您需要检查其他内容
  • yes@Sauravkumar
  • 您将“有效 url”与“现有域”混淆了,因此您请求了错误的内容。猜猜这就是原因。
  • 你问的是 java 还是 JavaScript 问题?

标签: javascript java validation url


【解决方案1】:

这段代码尝试连接指定的url,如果连接成功,继续打印“URL存在”;否则,将抛出 UnknownHostException,您可以在 catch 块中处理这种情况,如下所示:

import java.net.URL;
import java.net.URLConnection;
import java.net.UnknownHostException;

class URLExists
{   
    public static void main(String[] args)
    {
        try {
            URL url = new URL("http://www.google.com");
            URLConnection urlc = url.openConnection();
            urlc.connect();//<--- throws UnknownHostException when unable to connect!!
            System.out.println("URL exists");           
        }
        catch(UnknownHostException e)
        {
            System.out.println("URL either doesn't exist or unable to connect at this moment");
        }
        catch(Exception e) {e.printStackTrace();}
    }
}

【讨论】:

  • 如何忽略来自给定 url 的 http 和 https 因为如果我们给 "google.com" 完整的 url 只有它验证,如果我给 "www.google.com" 会抛出错误
  • 这将检查您是否能够创建到 URL 的连接,但绝不会像您在问题中所说的那样识别有效的 URL
  • 如果你能连接到一个URL,就说明它存在!!您无法连接到不存在的网址。所以,如果你能连接,你可以说,URL 肯定存在。但是,我们不能确定 URL 是否不存在,因为它可能暂时关闭或者您没有连接到互联网!
【解决方案2】:

如果“URL 存在”是指“URL 重定向到有效网页”,则必须检查 HTTP 返回代码,因此您需要找到某种方法来发出 HTTP 请求并检查返回代码,200 是一个有效的回应。

这在 Java 和 JavaScript 中可能是可行的,这取决于它是什么类型的应用程序......如果你使用的是客户端 JS,你可能会遇到一些麻烦,因为浏览器端 JS 是 真的不适合进行跨域调用

【讨论】:

猜你喜欢
  • 2017-12-21
  • 2019-05-03
  • 2011-03-20
  • 2020-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-24
  • 1970-01-01
相关资源
最近更新 更多