kid*_*lex 73 url android url-validation
有没有一种好方法可以避免崩溃应用程序的"主机未解决"错误?某种尝试连接到主机(如URL)并查看它是否有效的方法?
dd6*_*619 164
使用 URLUtil 验证URL,如下所示.
URLUtil.isValidUrl(url)
Run Code Online (Sandbox Code Playgroud)
如果URL有效,它将返回True,如果URL无效,则返回false.
Pra*_*nav 56
URLUtil.isValidUrl(url);
Run Code Online (Sandbox Code Playgroud)
如果这不起作用,您可以使用:
Patterns.WEB_URL.matcher(url).matches();
Run Code Online (Sandbox Code Playgroud)
我会结合使用这里和其他Stackoverflow线程中提到的方法:
private boolean isValid(String urlString) {
try {
URL url = new URL(urlString);
return URLUtil.isValidUrl(url) && Patterns.WEB_URL.matcher(url).matches();
} catch (MalformedURLException e) {
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
如果您正在使用 fromkotlin您可以创建一个String.kt并编写以下代码:
fun String.isValidUrl(): Boolean = Patterns.WEB_URL.matcher(this).matches()
Run Code Online (Sandbox Code Playgroud)
然后:
String url = "www.yourUrl.com"
if (!url.isValidUrl()) {
//some code
}else{
//some code
}
Run Code Online (Sandbox Code Playgroud)
将操作包装在try/catch中.有许多方法可以使URL格式良好但不可检索.此外,检查主机名是否存在等测试不能保证任何内容,因为主机可能在检查后无法访问.基本上,没有任何预检查可以保证检索不会失败并抛出异常,因此您最好计划处理异常.
小智 5
只需添加这行代码:
Boolean isValid = URLUtil.isValidUrl(url) && Patterns.WEB_URL.matcher(url).matches();
Run Code Online (Sandbox Code Playgroud)