【问题标题】:URL Well Formed returns true for invalid url [duplicate]URL Well Formed 为无效的 url 返回 true [重复]
【发布时间】:2017-07-10 22:07:07
【问题描述】:

为什么下面的网址是有效的?

var testURL = "http://" + "ggggggggg" +"/" 
if(Uri.IsWellFormedUriString(testURL, UriKind.RelativeOrAbsolute))
{
// it comes here
}

【问题讨论】:

  • 格式正确只是意味着字符串“看起来”是一个好的 URL。它与该 URL 上是否实际存在任何内容无关。
  • http://yourcomputername/ 不是“有效”网址吗?
  • http://ggggggggg/ 是正确的 url 格式
  • @hotspring:定义“奇怪的东西”和“正确的格式”。因为您正在测试的 URL 是 URL 的有效格式。如果您有一些想要实现的自定义逻辑,框架工具不会知道。
  • @hotspring:没有任何解决方案可以执行您个人和主观上在所有情况下都同意的直觉判断。只有一个通用的解决方案可以确定 URL 的格式是否符合您当前使用的 URL 格式。您想要为特定逻辑实施的任何自定义规则,您都需要自己实施。您编写的自定义逻辑不会出现在任何框架中。

标签: c#


【解决方案1】:

格式正确只是意味着字符串“看起来”是一个好的 URL。它与该 URL 中是否实际存在任何内容无关。甚至不需要有效的顶级域或任何顶级域。您只需要有效的主机名,这可以更简单。

在这种情况下,网址http://ggggggggg/ 有效且格式正确,因为ggggggg 对于网址的主机部分完全有效。在本地网络上使用该名称设置 Web 主机是完全合法的。如果您真的想知道该地址是否有网络服务器,请继续发送 http 请求,然后等待响应。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-16
    • 1970-01-01
    • 2012-10-14
    相关资源
    最近更新 更多