欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > C# >内容正文

C#

C#中Uri操作

发布时间:2025/3/20 C# 41 豆豆
生活随笔 收集整理的这篇文章主要介绍了 C#中Uri操作 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

  在现在的项目中,使用到uri的部分较多。

  • uri的解析方法:

  •  public static Uri ReturnUri(this string val){if (string.IsNullOrEmpty(val)){throw new ArgumentNullException(val);}try{UriBuilder uri;if (val.StartsWith("http://", StringComparison.Ordinal)){uri = new UriBuilder(val);}else if (val.StartsWith("https://", StringComparison.Ordinal)){uri = new UriBuilder(val);}else if (val.Contains(":")){var split = val.Split(':', '/');int port;int.TryParse(split[1], out port);uri = split.Length == 3? new UriBuilder(Uri.UriSchemeHttp, split[0], port, "/" + split[2]): new UriBuilder(Uri.UriSchemeHttp, split[0], port);}else{uri = new UriBuilder(Uri.UriSchemeHttp, val);}return uri.Uri;}catch (Exception exception){throw new Exception(exception.Message, exception);}}

    2.uri解析的重载:

      public static Uri ReturnUri(this string val, int port, bool ssl = default(bool)){if (string.IsNullOrEmpty(val)){throw new ArgumentNullException(val);}try{UriBuilder uri;if (val.StartsWith("http://", StringComparison.Ordinal)){var split = val.Split('/');uri = split.Length >= 4 ? new UriBuilder(Uri.UriSchemeHttp, split[2], port, "/" + split[3]) : new UriBuilder(new Uri($"{val}:{port}"));}else if (val.StartsWith("https://", StringComparison.Ordinal)){var split = val.Split('/');uri = split.Length >= 4? new UriBuilder(Uri.UriSchemeHttps, split[2], port, "/" + split[3]): new UriBuilder(Uri.UriSchemeHttps, split[2], port);}else if(ssl){uri = new UriBuilder(Uri.UriSchemeHttps, val, port);}else{uri = new UriBuilder(Uri.UriSchemeHttp, val, port);}return uri.Uri;}catch (Exception exception){throw new Exception(exception.Message, exception);}}


      public static Uri ReturnUriWithSubDir(this string val, int port, bool ssl, string subDir){var uriBuilder = new UriBuilder(val);if (ssl){uriBuilder.Scheme = Uri.UriSchemeHttps;}if (!string.IsNullOrEmpty(subDir)){uriBuilder.Path = subDir;}uriBuilder.Port = port;return uriBuilder.Uri;}


    转载于:https://blog.51cto.com/pengze0902/1862829

    与50位技术专家面对面20年技术见证,附赠技术全景图

    总结

    以上是生活随笔为你收集整理的C#中Uri操作的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。