我试图运行这个:
string webRoot = "http://www.dev/api";
string apiRoot = "http://api.dev";
string path = "/verify";
Uri root = (Settings.IsWebRoot) ? new Uri(webRoot) : new Uri(apiRoot);
Uri actualUri = new Uri(root, path);
但是,actualUri
不是http://www.dev/api/verify
(这是我期待的),但是http://www.dev/verify
我做错了什么?
答案 0 :(得分:2)
这不是很直观,但你需要:
webRoot
。path
(否则它会认为它是绝对的,而不是相对的)。所以以下内容可以正常使用:
string webRoot = "http://www.dev/api/";
string apiRoot = "http://api.dev/";
string path = "verify/";
Uri root = (true) ? new Uri(webRoot) : new Uri(apiRoot);
Uri actualUri = new Uri(root, path);
答案 1 :(得分:2)
如果您想要更灵活的选项,可以使用UriBuilder
:
string webRoot = "http://www.dev/api";
string apiRoot = "http://api.dev";
string path = "/verify";
Uri root = (true) ? new Uri(webRoot) : new Uri(apiRoot);
UriBuilder builder = new UriBuilder(root);
builder.Path += path;
Uri actualUri = builder.Uri;