Absoluto URL de base + URL relativa em C #
Pergunta
Eu tenho um URL base:
http://my.server.com/folder/directory/sample
E uma relativa:
../../other/path
Como obter a URL absoluta com isso? É muito straighforward usando a manipulação de cadeia, mas eu gostaria de fazer isso de forma segura, usando a classe Uri
ou algo similar.
É para um padrão um aplicativo C #, não um ASP.NET.
Solução
var baseUri = new Uri("http://my.server.com/folder/directory/sample");
var absoluteUri = new Uri(baseUri,"../../other/path");
ou
Uri uri;
if ( Uri.TryCreate("http://base/","../relative", out uri) ) doSomething(uri);
Outras dicas
Alguns podem estar à procura de solução de Javascript que permitiria a conversão de URLs 'na mosca' quando a depuração
var absoluteUrl = function(href) {
var link = document.createElement("a");
link.href = href;
return link.href;
}
utilização como:
absoluteUrl("http://google.com")
http://google.com/
ou
absoluteUrl("../../absolute")
http://stackoverflow.com/absolute
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow