Estrai l'URL di base da una stringa in c#?

Estrai l'URL di base da una stringa in c#?

Puoi utilizzare la classe URI per ottenere il nome host.

var uri = new Uri("http://www.example.com/mypage/default.aspx");    
var host = uri.Host;

Modifica Puoi usare uri.Scheme e uri.Port per ottenere .Scheme, ad es. (http, ftp) e .Port per ottenere il numero di porta come (8080)

string host = uri.Host;
string scheme = uri.Scheme;
int port = uri.Port;

Puoi utilizzare Uri.GetLeftPart per ottenere l'URL di base.

var uri = new Uri("http://www.example.com/mypage/default.aspx");    
var baseUri = uri.GetLeftPart(System.UriPartial.Authority);

Gli esempi seguenti mostrano un URI e i risultati della chiamata a GetLeftPart con schema, autorità, percorso o query, MSDN.


Risposta breve

myUri.GetLeftPart(System.UriPartial.Authority)

Risposta lunga
Supponendo che "URI di base" significhi qualcosa come http://www.example.com , puoi ottenere l'uri di base in questo modo:

var myUri= new Uri("http://www.example.com/mypage/default.aspx");    
var baseUri = myUri.GetLeftPart(System.UriPartial.Authority)

Questo dà:http://www.example.com

Nota:uri.Host dà:www.example.com (escluso porto o schema)


var builder = new UriBuilder("http://www.example.com/mypage/default.aspx");
builder.Path = String.Empty;
var baseUri = builder.Uri;
var baseUrl = baseUri.ToString();
// http://www.example.com/