当前位置:  开发笔记 > 编程语言 > 正文

如何使用System.Uri .NET类检查URL是否有效?

如何解决《如何使用System.Uri.NET类检查URL是否有效?》经验,为你挑选了3个好方法。

在之前的一篇文章中,建议使用System.Uri来检查URL是否有效.怎么做到这一点?



1> Darin Dimitr..:

要检查url是否有效而不是使用异常,可以使用TryCreate方法:

Uri result;
if (Uri.TryCreate("http://www.google.com", UriKind.RelativeOrAbsolute, out result)) 
{
    // the url is valid
}



2> Juan Zamudio..:

使用Uri.TryCreate可能有一些问题相对URI,像这样"/folder/{ht.com.m\/sx.r:erp://" TryCreate返回true字符串,所以我创建一个使用IsWellFormedUriString这种扩展方法和TyrCreate,我不确定TryCreate是否必要,我的小测试无论是否有TryCreate我都会得到相同的结果

public static bool IsUri(this string source) {
  if(!string.IsNullOrEmpty(source) && Uri.IsWellFormedUriString(source, UriKind.RelativeOrAbsolute)){
    Uri tempValue;
    return (Uri.TryCreate(source, UriKind.RelativeOrAbsolute, out tempValue));
  }
  return (false);
}

address= "http://www.c$nbv.gob.mx"
if(address.IsUri()){
  //returns false
}
address= "http://www.cnbv.gob.mx"
if(address.IsUri()){
  //returns true
}
address= "http://www.cnbv.gob.mx:80"
if(address.IsUri()){
  //returns true
}
address= "/directory/path"
if(address.IsUri()){
  //returns true
}
address= "~re#l|ativ[ainco#recta\car:.\peta"
if(address.IsUri()){
  //returns false
}



3> Pat..:

可以使用静态IsWellFormedUriString方法:

bool isValid = Uri.IsWellFormedUriString(url, UriKind.Absolute);

http://msdn.microsoft.com/en-us/library/system.uri.iswellformeduristring.aspx

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有