我想從相對URI(即沒有任何方案或主機信息的URI)中提取查詢字符串和片段。解析相對URI
是否有一個更優雅的方式來做到這一點,而不是把它變成絕對URI與假主機名?
var relativeUri = "/dir1/dir2/file?a=b&c=d#fragment";
var uri = new Uri(new Uri("http://example.com"), relativeUri);
var path = Uri.UnescapeDataString(String.Concat(uri.Segments));
var query = uri.Query;
var fragment = uri.Fragment;
// path = "/dir1/dir2/file", query = "?a=b&c=d", fragment = "#fragment"
事實上,'HttpUtility.ParseQueryString()'用相對URL的作品,以及。晚會有點晚 - 但正在檢查類似的東西:) – NomadTraveler
@Nomad恐怕沒有。 'HttpUtility.ParseQueryString(「/ dir1/dir2/file?a = b&c = d#fragment」);'產生兩個結果:'/ dir1/dir2/file?a = b'和'c = d#fragment'絕對不是你感興趣的東西,你真的只需要傳遞一個查詢字符串。 – CodeCaster