예제 #1
0
 private void _ParseUrlEncoded(HttpDataDictionary d, string qs)
 {
     string[] parts = qs.Split('&');
     foreach (string p in parts) {
         string[] kv = p.Split('=');
         if (kv.Length == 2) {
             string key   = _Utils.UrlDecode(kv[0]);
             string value = _Utils.UrlDecode(kv[1]);
             d.Set(key, new UnsafeString(value));
         }
     }
 }
예제 #2
0
        public static HttpDataDictionary FromHeader(string header)
        {
            int eq_idx = -1;
            int key_idx = 0;
            HttpDataDictionary dict = new HttpDataDictionary ();
            if (header == null)
                return dict;

            for (int i = 0; i < header.Length; i++) {
                if (header [i] == ';') {
                    if (eq_idx == -1)
                        continue;
                    string key = header.Substring (key_idx, eq_idx - key_idx);
                    string value = header.Substring (eq_idx + 1, i - eq_idx - 1);

                    dict.Set (key.Trim (), value.Trim ());

                    key_idx = i + 1;
                    eq_idx = -1;
                    continue;
                }

                if (header [i] == '=')
                    eq_idx = i;
            }

            if (eq_idx != -1) {
                string key = header.Substring (key_idx, eq_idx - key_idx);
                string value = header.Substring (eq_idx + 1);

                dict.Set (key.Trim (), value.Trim ());
            }

            return dict;
        }