internal HttpResponse(HttpContext context) { if (context == null) throw new ArgumentNullException("context"); _context = context; CacheControl = "private"; CharSet = "utf-8"; ContentType = "text/html"; ExpiresAbsolute = DateTime.MinValue; HeadersEncoding = Encoding.UTF8; Headers = new NameValueCollection(); OutputStream = new HttpOutputStream(new MemoryStream()); StatusCode = 200; StatusDescription = "OK"; Cookies = new HttpCookieCollection(); }
private void ParseHeaders(HttpClient client) { Headers = CreateCollection(client.Headers); string header; // Parse Accept. if (client.Headers.TryGetValue("Accept", out header)) { string[] parts = header.Split(','); HttpUtil.TrimAll(parts); AcceptTypes = parts; } else { AcceptTypes = EmptyStringArray; } // Parse Content-Type. if (client.Headers.TryGetValue("Content-Type", out header)) { string[] parts = header.Split(new[] { ';' }, 2); ContentType = parts[0].Trim(); if (parts.Length == 2) { string[] encoding = parts[1].Trim().Split(new[] { '=' }, 2); if (encoding.Length == 2 && String.Equals(encoding[0], "charset", StringComparison.OrdinalIgnoreCase)) { ContentEncoding = Encoding.GetEncoding(encoding[1]); } } } // Parse Content-Length. if (client.Headers.TryGetValue("Content-Length", out header)) { int contentLength; if (int.TryParse(header, out contentLength)) ContentLength = contentLength; } // Parse Referer. if (client.Headers.TryGetValue("Referer", out header)) UrlReferer = new Uri(header); // Parse User-Agent. if (client.Headers.TryGetValue("User-Agent", out header)) UserAgent = header; // Parse Accept-Language. if (client.Headers.TryGetValue("Accept-Language", out header)) { string[] parts = header.Split(','); HttpUtil.TrimAll(parts); UserLanguages = parts; } else { UserLanguages = EmptyStringArray; } // Parse Cookie. Cookies = new HttpCookieCollection(); if (client.Headers.TryGetValue("Cookie", out header)) { string[] parts = header.Split(';'); foreach (string part in parts) { string[] partParts = part.Split(new[] { '=' }, 2); string name = partParts[0].Trim(); string value = partParts.Length == 1 ? null : partParts[1]; Cookies.AddCookie(new HttpCookie(name, value), true); } } }
private void ParseHeaders(HttpClient client) { Headers = CreateCollection(client.Headers); string header; // Parse Accept. if (client.Headers.TryGetValue("Accept", out header)) { string[] parts = header.Split(','); HttpUtil.TrimAll(parts); AcceptTypes = parts; } else { AcceptTypes = EmptyStringArray; } // Parse Content-Type. if (client.Headers.TryGetValue("Content-Type", out header)) { string[] parts = header.Split(new[] { ';' }, 2); ContentType = parts[0].Trim(); if (parts.Length == 2) { string[] encoding = parts[1].Trim().Split(new[] { '=' }, 2); if (encoding.Length == 2 && String.Equals(encoding[0], "charset", StringComparison.OrdinalIgnoreCase)) { ContentEncoding = Encoding.GetEncoding(encoding[1]); } } } // Parse Content-Length. if (client.Headers.TryGetValue("Content-Length", out header)) { int contentLength; if (int.TryParse(header, out contentLength)) { ContentLength = contentLength; } } // Parse Referer. if (client.Headers.TryGetValue("Referer", out header)) { UrlReferer = new Uri(header); } // Parse User-Agent. if (client.Headers.TryGetValue("User-Agent", out header)) { UserAgent = header; } // Parse Accept-Language. if (client.Headers.TryGetValue("Accept-Language", out header)) { string[] parts = header.Split(','); HttpUtil.TrimAll(parts); UserLanguages = parts; } else { UserLanguages = EmptyStringArray; } // Parse Cookie. Cookies = new HttpCookieCollection(); if (client.Headers.TryGetValue("Cookie", out header)) { string[] parts = header.Split(';'); foreach (string part in parts) { string[] partParts = part.Split(new[] { '=' }, 2); string name = partParts[0].Trim(); string value = partParts.Length == 1 ? null : partParts[1]; Cookies.AddCookie(new HttpCookie(name, value), true); } } }