從Request.Url中獲取根網址的簡單操作
在拼接絕對路徑的網址時,經常需要從Request.Url中獲取根網址(比如https://git.oschina.net),然後與相對路徑一起拼接為絕對路徑。
以前的做法如下:
var uri = Request.Url.Scheme + "://" + Request.Url.Host + "/userfile/img";
今天發現瞭更簡單的方法:
var uri = Request.Url.GetLeftPart(UriPartial.Authority) + "/userfile/img";
得到的結果是:
https://git.oschina.net/userfile/img
補充:C# Request 獲取Url
1、獲取頁面,HttpContext.Current.Request也是Request
//獲取當前頁面url string myurl = System.Web.HttpContext.Current.Request.Url.ToString(); //獲取上一頁面url string UrlReferrer = System.Web.HttpContext.Current.Request.UrlReferrer.ToString();
2、假設當前頁完整地址是:http://www.test.com/aaa/bbb.aspx?id=5&name=kell
"http://"是協議名 "www.test.com"是域名 "aaa"是站點名 "bbb.aspx"是頁面名(文件名) "id=5&name=kelli"是參數 //獲取 完整url (協議名+域名+站點名+文件名+參數) string url = Request.Url.ToString(); url = "http://www.test.com/aaa/bbb.aspx?id=5&name=kelli"; //獲取 站點名+頁面名+參數: string url = Request.RawUrl; string url = Request.Url.PathAndQuery; url= "/aaa/bbb.aspx?id=5&name=kelli"; //獲取 站點名+頁面名: string url = Request.Url.AbsolutePath; string url = Request.Path; url= "aaa/bbb.aspx"; //獲取 域名: string url = Request.Url.Host; url= "www.test.com"; //獲取 參數: string url = Request.Url.Query; url= "?id=5&name=kelli"; //如果有端口的話 int port = System.Web.HttpContext.Current.Request.Url.Port;
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。
推薦閱讀:
- ASP.NET中HttpContext對象下的屬性介紹
- ASP.NET HttpRequest類介紹
- ASP.NET處理HTTP請求的流程:IHttpModule、IHttpHandler與管道事件
- Node.js之http模塊的用法
- python urllib.request模塊的使用詳解