在安卓系统中如何检查URL是否有效?

3
如何检查URL是否有效。
在Android版本5及以下,Patterns.WEB_URL.matcher(urlString).matches()返回false。同时,各种链接都说URLUtil.isValidUrl(urlString)不好使用。

4个回答

8
不应该使用URLUtil来验证URL,如下所示。
URLUtil.isValidUrl(url)

因为它将像"http://"这样的字符串作为有效的URL,而事实并非如此

更好的方法是

Patterns.WEB_URL.matcher(potentialUrl).matches()

如果URL有效,它将返回True,如果URL无效,则返回false。

2

您的解决方案是:

URLUtil.isValidUrl(url);

如果上面的代码不起作用,您可以使用以下代码。
Patterns.WEB_URL.matcher(url).matches();

以下代码并不关心“http://”,所以我使用了上面的代码,谢谢。 - fullmoon

1

您可以使用两种方法检查URL是否有效

  1. URLUtil.isValidUrl(url)

    问题是:它会将错误的“http://”返回为true

  2. 第二种方法是

    Patterns.WEB_URL.matcher(potentialUrl).matches();


1
或者你可以使用两者的组合:)
fun isUrlValid(url: String?): Boolean {
        url ?: return false
        return Patterns.WEB_URL.matcher(url).matches() && URLUtil.isValidUrl(url)
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接