C# URL验证IswellFormedUrString始终返回true

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",

我使用下面的代码来验证url,但问题是在这两种情况下 检查结果为真。在第二个选项中,我应该如何得到false

这里布尔是真的

 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非常无用。