C# URL验证IswellFormedUrString始终返回true
我使用下面的代码来验证url,但问题是在这两种情况下 检查结果为真。在第二个选项中,我应该如何得到false 这里布尔是真的C# URL验证IswellFormedUrString始终返回true,c#,url,uri,C#,Url,Uri,我使用下面的代码来验证url,但问题是在这两种情况下 检查结果为真。在第二个选项中,我应该如何得到false 这里布尔是真的 bool isWellFormedUriString = Uri.IsWellFormedUriString("http://stackoverflow.com/", UriKind.RelativeOrAbsolute); 在这里也是如此 bool isWellFormedUriString = Uri.IsWellFormedUriString("ddddd",
bool isWellFormedUriString = Uri.IsWellFormedUriString("http://stackoverflow.com/", UriKind.RelativeOrAbsolute);
在这里也是如此
bool isWellFormedUriString = Uri.IsWellFormedUriString("ddddd", UriKind.RelativeOrAbsolute);
现在当我这么做的时候
\u uri=新uri(\u url)代码>我遇到异常…尝试以下操作:
Uri result;
if (Uri.TryCreate("http://stackoverflow.com",UriKind.Absolute, out result) &&
result.Scheme == Uri.UriSchemeHttp)
{
//Use the valid Uri here
}
我限制了有效的方案,因为否则即使是目录URI也是有效的(例如:c:\\directory\\filename
)字符串ddddd
可能是完整URI的有效“部分”,因此使用Relative
或RelativeOrAbsolute
返回true
尝试将第二个参数更改为UriKind.Absolute
:
bool isWellFormedUriString // returns true
= Uri.IsWellFormedUriString("http://stackoverflow.com/", UriKind.Absolute);
bool isWellFormedUriString // returns false
= Uri.IsWellFormedUriString("ddddd", UriKind.Absolute);
从:
绝对Uri的特征是对资源的完整引用(示例:),而相对Uri依赖于先前定义的基本Uri(示例:/index.html)
同时bool-isWellFormedUriString=Uri.isWellFormedUriString(“,UriKind.Absolute”);将返回真值。根据标准,不确定这是否真的是一个有效的Url,但它使此方法对于检查internet Url非常无用。