Exemple #1
0
        internal static NameValueCollection InternalParseQueryString(string query, Encoding encoding)
        {
            int num;

            if ((query == null) || (((num = query.Length) == 0) || ((num == 1) && (query[0] == '?'))))
            {
                return(new NameValueCollection(1));
            }
            if (query[0] == '?')
            {
                query = query.Substring(1);
            }
            QueryStringCollection strings = new QueryStringCollection();

            char[] separator = new char[] { '&' };
            foreach (string str in query.Split(separator))
            {
                int index = str.IndexOf('=');
                if (index <= -1)
                {
                    strings.Add(null, UrlDecode(str, encoding));
                }
                else
                {
                    string name = UrlDecode(str.Substring(0, index), encoding);
                    strings.Add(name, (str.Length <= (index + 1)) ? string.Empty : UrlDecode(str.Substring(index + 1), encoding));
                }
            }
            return(strings);
        }
Exemple #2
0
        internal static NameValueCollection InternalParseQueryString(string query, Encoding encoding)
        {
            int length;

            if (query == null || (length = query.Length) == 0 || (length == 1 && query[0] == '?'))
            {
                return(new NameValueCollection(1));
            }
            if (query[0] == '?')
            {
                query = query.Substring(1);
            }
            QueryStringCollection queryStringCollection = new QueryStringCollection();

            string[] array  = query.Split('&');
            string[] array2 = array;
            foreach (string text in array2)
            {
                int num = text.IndexOf('=');
                if (num > -1)
                {
                    string name = UrlDecode(text.Substring(0, num), encoding);
                    string val  = ((text.Length <= num + 1) ? string.Empty : UrlDecode(text.Substring(num + 1), encoding));
                    queryStringCollection.Add(name, val);
                }
                else
                {
                    queryStringCollection.Add(null, UrlDecode(text, encoding));
                }
            }
            return(queryStringCollection);
        }
Exemple #3
0
        internal static NameValueCollection InternalParseQueryString(string query, Encoding encoding)
        {
            int len;

            if (query == null || (len = query.Length) == 0 || (len == 1 && query[0] == '?'))
            {
                return(new NameValueCollection(1));
            }

            if (query[0] == '?')
            {
                query = query.Substring(1);
            }

            var res        = new QueryStringCollection();
            var components = query.Split('&');

            foreach (var component in components)
            {
                var i = component.IndexOf('=');
                if (i > -1)
                {
                    var name = SSMono.Web.HttpUtility.UrlDecode(component.Substring(0, i), encoding);
                    var val  = component.Length > i + 1
                                                          ? SSMono.Web.HttpUtility.UrlDecode(component.Substring(i + 1), encoding)
                                                          : String.Empty;

                    res.Add(name, val);
                }
                else
                {
                    res.Add(null, SSMono.Web.HttpUtility.UrlDecode(component, encoding));
                }
            }

            return(res);
        }
        internal static NameValueCollection InternalParseQueryString(string query, Encoding encoding)
        {
            int len;
              if (query == null || (len = query.Length) == 0 || (len == 1 && query[0] == '?'))
            return new NameValueCollection (1);

              if (query[0] == '?')
            query = query.Substring (1);

              var res = new QueryStringCollection ();
              var components = query.Split ('&');
              foreach (var component in components) {
            var i = component.IndexOf ('=');
            if (i > -1) {
              var name = UrlDecode (component.Substring (0, i), encoding);
              var val = component.Length > i + 1
                    ? UrlDecode (component.Substring (i + 1), encoding)
                    : String.Empty;

              res.Add (name, val);
            }
            else {
              res.Add (null, UrlDecode (component, encoding));
            }
              }

              return res;
        }
Exemple #5
0
        public static QueryStringCollection Parse(string query, Encoding encoding)
        {
            if (query == null)
            {
                return(new QueryStringCollection(1));
            }

            var len = query.Length;

            if (len == 0)
            {
                return(new QueryStringCollection(1));
            }

            if (query == "?")
            {
                return(new QueryStringCollection(1));
            }

            if (query[0] == '?')
            {
                query = query.Substring(1);
            }

            if (encoding == null)
            {
                encoding = Encoding.UTF8;
            }

            var ret = new QueryStringCollection();

            var components = query.Split('&');

            foreach (var component in components)
            {
                len = component.Length;
                if (len == 0)
                {
                    continue;
                }

                if (component == "=")
                {
                    continue;
                }

                var i = component.IndexOf('=');
                if (i < 0)
                {
                    ret.Add(null, urlDecode(component, encoding));
                    continue;
                }

                if (i == 0)
                {
                    ret.Add(null, urlDecode(component.Substring(1), encoding));
                    continue;
                }

                var name = urlDecode(component.Substring(0, i), encoding);

                var start = i + 1;
                var val   = start < len
                  ? urlDecode(component.Substring(start), encoding)
                  : String.Empty;

                ret.Add(name, val);
            }

            return(ret);
        }
Exemple #6
0
        public static QueryStringCollection Parse(string query, Encoding encoding)
        {
            if (query == null)
            {
                return(new QueryStringCollection(1));
            }

            var len = query.Length;

            if (len == 0)
            {
                return(new QueryStringCollection(1));
            }

            if (query == "?")
            {
                return(new QueryStringCollection(1));
            }

            if (query[0] == '?')
            {
                query = query.Substring(1);
            }

            if (encoding == null)
            {
                encoding = Encoding.UTF8;
            }

            var ret = new QueryStringCollection();

            var components = query.Split('&');

            foreach (var component in components)
            {
                len = component.Length;
                if (len == 0)
                {
                    continue;
                }

                if (component == "=")
                {
                    continue;
                }

                var i = component.IndexOf('=');
                if (i < 0)
                {
#if SSHARP
                    ret.Add(null, Crestron.SimplSharp.Net.HttpUtility.UrlDecode(component, encoding));
#else
                    ret.Add(null, HttpUtility.UrlDecode(component, encoding));
#endif
                    continue;
                }

                if (i == 0)
                {
                    ret.Add(
#if SSHARP
                        null, Crestron.SimplSharp.Net.HttpUtility.UrlDecode(component.Substring(1), encoding)
#else
                        null, HttpUtility.UrlDecode(component.Substring(1), encoding)
#endif
                        );

                    continue;
                }

#if SSHARP
                var name = Crestron.SimplSharp.Net.HttpUtility.UrlDecode(component.Substring(0, i), encoding);
                var val  = component.Length > i + 1
                                                         ? Crestron.SimplSharp.Net.HttpUtility.UrlDecode(component.Substring(i + 1), encoding)
                                                         : String.Empty;
#else
                var name = HttpUtility.UrlDecode(component.Substring(0, i), encoding);
                var val  = component.Length > i + 1
                                                         ? HttpUtility.UrlDecode(component.Substring(i + 1), encoding)
                                                         : String.Empty;
#endif

                ret.Add(name, val);
            }

            return(ret);
        }
        public static QueryStringCollection Parse(string query, Encoding encoding)
        {
            if (query == null)
            {
                return(new QueryStringCollection(1));
            }

            if (query.Length == 0)
            {
                return(new QueryStringCollection(1));
            }

            if (query == "?")
            {
                return(new QueryStringCollection(1));
            }

            if (query[0] == '?')
            {
                query = query.Substring(1);
            }

            if (encoding == null)
            {
                encoding = Encoding.UTF8;
            }

            var ret = new QueryStringCollection();

            foreach (var component in query.Split('&'))
            {
                var len = component.Length;

                if (len == 0)
                {
                    continue;
                }

                if (component == "=")
                {
                    continue;
                }

                string name = null;
                string val  = null;

                var idx = component.IndexOf('=');

                if (idx < 0)
                {
                    val = component.UrlDecode(encoding);
                }
                else if (idx == 0)
                {
                    val = component.Substring(1).UrlDecode(encoding);
                }
                else
                {
                    name = component.Substring(0, idx).UrlDecode(encoding);

                    var start = idx + 1;
                    val = start < len
                ? component.Substring(start).UrlDecode(encoding)
                : String.Empty;
                }

                ret.Add(name, val);
            }

            return(ret);
        }