【问题标题】:c# Uri is well formattedc# Uri 格式正确
【发布时间】:2020-09-06 03:11:27
【问题描述】:

我知道如果 Uri.IsWellFormedUriString() 是“格式正确的 URI”,它会返回 true。我的问题是如何检查 URI 的有效性?另一位开发人员告诉我,它会检查 URI 是否存在。当我阅读文档时,它似乎正如名称所暗示的那样。也就是说......它只是检查它的格式是否正确。调用此方法时,我看到没有通过网络发送数据包。

如果我是正确的,是否有一个函数可以确保 URI 存在/有效?如果需要身份验证怎么办?它会检查是否提供了正确的身份验证?

我在流媒体上遇到问题,正在尝试解决我的问题。

【问题讨论】:

  • "另一个开发人员告诉我它会检查 URI 是否存在" - 他们完全错了。文档告诉你它检查什么
  • "如果我是正确的,是否有一个函数可以确保 URI 存在/有效 - 我不确定你的实际意思。检查远程资源是否存在的唯一方法是调用它
  • 我编写了一个程序,它通过一系列基于 HTTP 的soap 获取有关特定IP 地址的某些定制设备的信息。我得到的信息告诉我如何构造 URI 以访问给定设备的特定功能。我仍然无法访问所需的功能。这让我相信我要么 a) 根据我收到的信息错误地构建了 URI,要么 b) 我已经正确地构建了 URI,但是我错误地编写了访问特定功能的请求。
  • 你是对的,它可能是 A 或 B。IsWellFormedUriString 只是一个健全性检查,我认为我们无法提供太多帮助,您最好联系制造商,或者只是不断尝试,直到你得到有用的东西
  • 是的!我试过了!已经两个星期了,我还没有收到回音。不管怎样,谢谢。

标签: c# uri


【解决方案1】:

要检查 url 是否有效或当前处于活动状态,您可以执行以下操作。

Uri uri = new Uri(url);
WebRequest webRequest = WebRequest.Create(uri);

try
{
    WebResponse webResponse = webRequest.GetResponse();
    // URL IS VALID/ACTIVE DO YOUR LOGIC HERE
}
catch (Exception)
{
    // URL IS NOT VALID/ACTIVE DO YOUR LOGIC HERE
}

【讨论】:

  • WebRequest 的文档声明不再使用它,而是使用 HttpClient。 WebRequest 在近十年前已被弃用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-20
  • 1970-01-01
  • 2012-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多