Example #1
0
        void AddCookiesToRequest(HttpRequest request)
        {
            Dictionary <string, string> cookies = new Dictionary <string, string>();

            if (request.Headers.Contains(HeaderField.Cookie))
            {
                string   cookieString = request.Headers[HeaderField.Cookie];
                string[] presets      = cookieString.Split(new string[] { "=", "; " }, StringSplitOptions.None);
                for (int i = 0; presets.Length > i; i += 2)
                {
                    cookies.Add(presets[i], presets[i + 1]);
                }
            }

            foreach (Cookie cookie in cookieJar.FindMatch(request.Uri))
            {
                if (!cookies.ContainsKey(cookie.name))
                {
                    cookies.Add(cookie.name, cookie.value);
                }
            }

            if (cookies.Count > 0)
            {
                StringBuilder sb = new StringBuilder();
                foreach (KeyValuePair <string, string> kv in cookies)
                {
                    sb.Append(kv.Key);
                    sb.Append("=");
                    sb.Append(kv.Value);
                    sb.Append("; ");
                }
                sb.Remove(sb.Length - 2, 2);
                request.Headers.AddOrReplace(HeaderField.Cookie, sb.ToString());
            }
        }