/// <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); }