在.NET中是否有一种简单的方法来快速获取当前的协议、主机和端口?例如,如果我在下面的URL:
http://www.mywebsite.com:80/pages/page1.aspx
我需要返回:
http://www.mywebsite.com:80
我知道我可以使用Request.Url.AbsoluteUri来获取完整的URL,我也知道我可以使用Request.Url.Authority来获取主机和端口,但我不确定在不解析URL字符串的情况下获得协议的最佳方法。
有什么建议吗?
和Holger的答案很相似。如果你需要抓取URL,可以这样做:
Uri uri = Context.Request.Url;
var scheme = uri.Scheme // returns http, https
var scheme2 = uri.Scheme + Uri.SchemeDelimiter; // returns http://, https://
var host = uri.Host; // return www.mywebsite.com
var port = uri.Port; // returns port number
Uri类提供了一系列的方法,其中很多我没有列出。
在我的实例中,我需要抓取LocalHost和端口号,所以这是我所做的:
var Uri uri = Context.Request.Url;
var host = uri.Scheme + Uri.SchemeDelimiter + uri.Host + ":" + uri.Port;
哪个成功抢到了:http://localhost:12345