简体   繁体   中英

HttpContext.Current.Request.Url.Host what it returns?

I'm having a local application which has a path:

http://localhost:950/m/pages/Searchresults.aspx?search=knife&filter=kitchen

but when this goes to integration environment or perhaps the production, it will be something like

http://www.someshopping.com/m/pages/SearchResults.aspx?search=knife&filter=kitchen

For some case I need to pass just:

www.someshopping.com

to my XSLT file and in one of the function I'm using this:

string currentURL = HttpContext.Current.Request.Url.Host;

this returns me " localhost " in local environment. Will the same code return me:

www.someshopping.com in production (I DO NOT need http:// )

just don't want to take any chance. So asked this silly question.

Yes, as long as the url you type into the browser www.someshopping.com and you aren't using url rewriting then

string currentURL = HttpContext.Current.Request.Url.Host;

will return www.someshopping.com

Note the difference between a local debugging environment and a production environment

The Host property will return the domain name you used when accessing the site. So, in your development environment, since you're requesting

http://localhost:950/m/pages/Searchresults.aspx?search=knife&filter=kitchen

It's returning localhost . You can break apart your URL like so:

Protocol: http
Host: localhost
Port: 950
PathAndQuery: /m/pages/SearchResults.aspx?search=knight&filter=kitchen

Try this:

string callbackurl = Request.Url.Host != "localhost" 
    ? Request.Url.Host : Request.Url.Authority;

This will work for local as well as production environment. Because the local uses url with port no that is possible using Url.Host.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM