Uri.AbsoluteUri 与 Uri.ToString() 的区别

作者:vkvi 来源:ITPOW(原创) 日期:2008-5-6
UriBuilder builder = new UriBuilder("http://somehost/somepath");
builder.Query = "somekey=" + HttpUtility.UrlEncode("some+value");
Uri someUri = builder.Uri;
Response.Write("<p>" + someUri.AbsoluteUri + "</p>");
Response.Write("<p>" + someUri.ToString() + "</p>");

显示的结果如下:

http://somehost/somepath?somekey=some%2bvalue

http://somehost/somepath?somekey=some+value

  • 可以看出 AbsoluteUri 是经过编码的,如果访问这个网址,再取 somekey 的值,结果为“some+value”,符合原值。
  • 而 ToString() 是取原值,如果访问这个网址,再取 somekey 的值时,结果为“some value”,与原值不符。

也就是说:如果要在浏览器中传送这个 Uri,则使用 AbsoluteUri;如果要获得未编码的 Uri,则使用 ToString()。

相关文章