簡體   English   中英

使用Uri的相對路徑

[英]Relative path using Uri

Uri test = new Uri(new Uri(“http://www.google.com/test”),“foo”);

返回http://www.google.com/foo

但是Uri測試=新的Uri(新的Uri(“http://www.google.com/test/”),“foo”);

返回http://www.google.com/foo/test

似乎最后一個斜線非常重要,是否有統一的方法可以在所有情況下返回http://www.google.com/foo/test

那么,您需要確保您的基URI以/字符結尾:

public Uri CombineUris(string baseUri, string relativeUri)
{
    if (!baseUri.EndsWith("/")) {
        baseUri += "/";
    }
    return new Uri(new Uri(baseUri), relativeUri);
}

確保使用尾隨/傳遞根URI。 最后的斜線是非常重要的。 考慮http://www.example.com/foo/bar.html, bar2.html 它應該解析為http://www.example.com/foo/bar2.html

Uri test = new Uri(new Uri(GetSafeURIString("http://www.google.com/test")), "foo");



private static string GetSafeURIString(uri)
{
   if(uri == null)
       return uri;
   else
       return uri.EndsWith("/") ? uri : uri + "/";
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM