C# URI

b2a4495acef72f1067e1727fd072d242.png

Uri 和UriBuilder 是 System 名称空间中的两个类,它们都用于表示 URI。Uri 类允许分析、组合和比较 URI。而 UniBuilder 类允许把给定的字符串当作 URI 的组成部分,从而构建一个 URI。

2ae99b692a054b47803781458f3b6af3.png

下面的代码片段演示了 Uri 类的特性。构造函数可以传递相对和绝对 URL。这个类定义了几个只读属性,来访问 URL 的各个部分,例如模式、主机名、端口号、查询字符串和 URL 的各个部分:

public static void UriSample(string url) 
{
  var page = new Uri(url);
  Console.WriteLine($"scheme: {page.Scheme}");
  Console.WriteLine($"host: {page.Host}, type: {page.HostNameType}, " +
    $"idn host: {page.IdnHost}");
  Console.WriteLine($"port: {page.Port}");
  Console.WriteLine($"path: {page.AbsolutePath}"); 
  Console.WriteLine($"query: {page.Query}");
  
  foreach (var segment in page.Segments)
  {
    Console.WriteLine($"segment: {segment}");
  }
  //...
}

45e38745dde45f4e43e8c495c6fa5d3f.png

运行应用程序,传递下面的URL和包含一个路径和查询字符串的字符串:http://www.amazon.com/ Professional-C-6-0-Christian-Nagel/dp/111909660X/ref=sr_1_4?ie=UTF8&qid=1438459506&sr=8-4&keywords=professional+c%23+6。

将得到下面的输出:

scheme: http
host: www.amazon.com, type: Dns, idn host: www.amazon.com 
port: 80
path: /Professional-C-6-0-Christian-Nagel/dp/111909660X/ref=sr_1_4 
query: ?ie=UTF8&qid=1438459506&sr=8-4&keywords=professional+c%23+6 
segment: /
segment: Professional-C-6-0-Christian-Nagel/ 
segment: dp/
segment: 111909660X/ 
segment: ref=sr_1_4

8c2782ebc975057e3244f185096e12c4.png

与 Uri 类不同,UriBuilder 定义了读-写属性,如下面的代码片段所示。可以创建一个 UriBuilder 实例,指定这些属性,并得到一个从 Uri 属性返回的 URL:

public static void UriSample(string url)
{
  //...
  var builder = new UriBuilder();
  builder.Host = "www.cninnovation.com"; 
  builder.Port = 80;
  builder.Path = "training/MVC"; 
  Uri uri = builder.Uri; 
  Console.WriteLine(uri);
}

48bb64dbefa2f47ce7d6e5436da4e107.png

除了使用 UriBuilder 的属性之外,这个类还提供了构造函数的几个重载版本,其中也可以传递 URL 的各个部分。

声明

技术群:添加小编微信并备注进群

小编微信:mm1552923   

公众号:dotNet编程大全    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值