从URL获取主机域?

001*_*001 123 c# string url uri httpwebrequest

如何从字符串URL获取主机域?

GetDomain有1个输入"URL",1个输出"Domain"

例1

INPUT: http://support.domain.com/default.aspx?id=12345
OUTPUT: support.domain.com
Run Code Online (Sandbox Code Playgroud)

例题

INPUT: http://www.domain.com/default.aspx?id=12345
OUTPUT: www.domain.com
Run Code Online (Sandbox Code Playgroud)

示例3

INPUT: http://localhost/default.aspx?id=12345
OUTPUT: localhost
Run Code Online (Sandbox Code Playgroud)

Adi*_*dil 243

您可以使用Request对象或Uri对象来获取url的主机.

使用Request.Url

string host = Request.Url.Host;
Run Code Online (Sandbox Code Playgroud)

使用Uri

Uri myUri = new Uri("http://www.contoso.com:8080/");   
string host = myUri.Host;  // host is "www.contoso.com"
Run Code Online (Sandbox Code Playgroud)

  • 嗨,我想使用Request.Url,但Visual Studio仍然返回无法解析符号'Request'.我不知道出了什么问题.我使用Visual Studio 2010和Net Framework 4.0.任何人都可以解释这个症状吗?谢谢 (2认同)

Son*_*nül 48

试试这样;

Uri.GetLeftPart( UriPartial.Authority )
Run Code Online (Sandbox Code Playgroud)

定义Uri.GetLeftPart方法的URI部分.


http://www.contoso.com/index.htm?date=today - > http://www.contoso.com

http://www.contoso.com/index.htm#main - > http://www.contoso.com

nntp://news.contoso.com/123456@contoso.com - > nntp://news.contoso.com

file://server/filename.ext - > file:// server

Uri uriAddress = new Uri("http://www.contoso.com/index.htm#search");
Console.WriteLine("The path of this Uri is {0}", uriAddress.GetLeftPart(UriPartial.Authority));
Run Code Online (Sandbox Code Playgroud)

Demo


Hab*_*bib 28

使用Uri类并使用Host属性

Uri url = new Uri(@"http://support.domain.com/default.aspx?id=12345");
Console.WriteLine(url.Host);
Run Code Online (Sandbox Code Playgroud)


小智 12

尝试以下声明

 Uri myuri = new Uri(System.Web.HttpContext.Current.Request.Url.AbsoluteUri);
 string pathQuery = myuri.PathAndQuery;
 string hostName = myuri.ToString().Replace(pathQuery , "");
Run Code Online (Sandbox Code Playgroud)

例1

 Input : http://localhost:4366/Default.aspx?id=notlogin
 Ouput : http://localhost:4366
Run Code Online (Sandbox Code Playgroud)

例题

 Input : http://support.domain.com/default.aspx?id=12345
 Output: support.domain.com
Run Code Online (Sandbox Code Playgroud)


Gui*_*ois 5

最佳方法和正确方法是使用Uri.Authority字段

像这样加载和使用Uri:

Uri NewUri;

if (Uri.TryCreate([string with your Url], UriKind.Absolute, out NewUri))
{
     Console.Writeline(NewUri.Authority);
}

Input : http://support.domain.com/default.aspx?id=12345
Output : support.domain.com

Input : http://www.domain.com/default.aspx?id=12345
output : www.domain.com

Input : http://localhost/default.aspx?id=12345
Output : localhost
Run Code Online (Sandbox Code Playgroud)

如果要操作Url,使用Uri对象是实现此目的的好方法。 https://msdn.microsoft.com/zh-CN/library/system.uri(v=vs.110).aspx