Tôi muốn trích xuất chuỗi truy vấn và phân đoạn từ URI tương đối, tức là URI không có bất kỳ thông tin chương trình hoặc máy chủ nào.Phân tích tương đối URI
Có cách nào thanh lịch hơn để thực hiện việc này bằng cách biến nó thành một URI tuyệt đối với tên máy chủ giả không?
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"
Trên thực tế, 'HttpUtility.ParseQueryString()' làm việc với URL tương đối cũng . Một chút muộn để các bên - nhưng đã được kiểm tra một cái gì đó tương tự :) – NomadTraveler
@Nomad Tôi sợ nó không. 'HttpUtility.ParseQueryString ("/dir1/dir2/file? A = b & c = d # fragment ");' đưa ra hai kết quả: '/ dir1/dir2/file? A = b' và' c = d # fragment', hoàn toàn không phải những gì bạn quan tâm. Bạn thực sự cần truyền nó chỉ một chuỗi truy vấn. – CodeCaster