I have a condition in my program where I have to combine a server (e.g. http://server1.my.corp/
) that may or may not have an ending slash with a relative path (e.g. /Apps/TestOne/
). According to the docs, Uri
should...
Canonicalizes the path for hierarchical URIs by compacting sequences such as /./, /../, //,...
So when I do something like var url = new Uri(server + relativePath)
, I'd expect it to take what would otherwise be http://server1.my.corp//Apps/TestOne/
and remove the double slash (i.e //
-> /
), but ToString
, AbsolutePath
and various options still show the redundant/duplicate slash. Am I not using Uri
right?
Take a look at the constructors for the Uri class. You need to specify a base Uri and a relative path to get the canonized behavior. Try something like this:
var server = new Uri("http://server1.my.corp/");
var resource = new Uri(server, "/Apps/TestOne/");
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With