/// <summary>
        /// Add a new header
        /// </summary>
        /// <param name="name">Name of the header</param>
        /// <param name="value">Value</param>
        /// <remarks>
        /// Adding a header which already exists will just append the value to that header.
        /// </remarks>
        public override void AddHeader(string name, string value)
        {
            if (name.Equals("host", StringComparison.OrdinalIgnoreCase))
            {
                Uri = value.StartsWith("http", StringComparison.OrdinalIgnoreCase)
                          ? new Uri(string.Format("{0}{1}", value, _pathAndQuery))
                          : new Uri(string.Format("http://{0}{1}", value, _pathAndQuery));
            }
            if (name.Equals("Content-Type", StringComparison.OrdinalIgnoreCase))
            {
                ParseContentType(value);
                return;
            }
            if (name.Equals("Content-Length", StringComparison.CurrentCultureIgnoreCase))
            {
                ContentLength = int.Parse(value);
            }
            if (name.Equals("Cookie", StringComparison.OrdinalIgnoreCase))
            {
                var parser = new HttpCookieParser(value);
                _cookies = parser.Parse();
            }

            base.AddHeader(name, value);
        }
        public void Test()
        {
            var parser = new HttpCookieParser(@"__qca=P0-1267122445-1340133197581; gauthed=1; km_lv=x; km_uq=; kvcd=1348223997344; km_ai=28603; km_ni=28603; usr=t=XXjSGVAt1Euf&s=ng3ePzX9NUKq; __utma=140029553.1710528871.1340133198.1355396765.1355406563.180; __utmb=140029553.1.10.1355406563; __utmc=140029553; __utmz=140029553.1355396765.179.62.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided)");
            var cookies = parser.Parse();

            Assert.Equal(12, cookies.Count);
            Assert.Equal("P0-1267122445-1340133197581", cookies["__qca"].Value);
            Assert.Equal("1", cookies["gauthed"].Value);
            Assert.Equal("x", cookies["km_lv"].Value);
            Assert.Equal("", cookies["km_uq"].Value);
            Assert.Equal("1348223997344", cookies["kvcd"].Value);
            Assert.Equal("28603", cookies["km_ai"].Value);
            Assert.Equal("28603", cookies["km_ni"].Value);
            Assert.Equal("140029553.1355396765.179.62.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided)", cookies["__utmz"].Value);
        }
        /// <summary>
        /// Add a new header
        /// </summary>
        /// <param name="name">Name of the header</param>
        /// <param name="value">Value</param>
        /// <remarks>
        /// Adding a header which already exists will just append the value to that header.
        /// </remarks>
        public override void AddHeader(string name, string value)
        {
            if (name.Equals("host", StringComparison.OrdinalIgnoreCase))
            {
                Uri = value.StartsWith("http", StringComparison.OrdinalIgnoreCase)
                          ? new Uri(string.Format("{0}{1}", value, _pathAndQuery))
                          : new Uri(string.Format("http://{0}{1}", value, _pathAndQuery));
            }
            if (name.Equals("Content-Type", StringComparison.OrdinalIgnoreCase))
            {
                ParseContentType(value);
                return;
            }
            if (name.Equals("Content-Length", StringComparison.CurrentCultureIgnoreCase))
            {
                ContentLength = int.Parse(value);
            }
            if (name.Equals("Cookie", StringComparison.OrdinalIgnoreCase))
            {
                var parser = new HttpCookieParser(value);
                _cookies = parser.Parse();
            }

            base.AddHeader(name, value);
        }