using System; using System.Collections.Generic; using System.Linq; namespace System.Net { public static class Extensions { /// /// https://github.com/aspnet/HttpAbstractions/issues/121 - Helpers implemented here until that. /// /// public static Dictionary ParseQueryString(this Uri uri) { var queryParameters = Uri.UnescapeDataString(uri.Query.TrimStart('?')).Split(new char[] { '&' }, StringSplitOptions.RemoveEmptyEntries); var queryItemCollection = new Dictionary(StringComparer.OrdinalIgnoreCase); if (queryParameters != null && queryParameters.Length > 0) { foreach (var queryParameter in queryParameters) { var queryParameterParts = queryParameter.Split(new char[] { '=' }, StringSplitOptions.RemoveEmptyEntries); var value = queryParameterParts.Length == 1 ? string.Empty : queryParameterParts[1]; queryItemCollection.Add(queryParameterParts[0], value); } } return queryItemCollection; } } }