internal void Send(HttpConnection connection, string protocol, string version) { ServerContext = connection.Server; byte[] data = null; if (Code < 200 || Code == 204 || Code == 304) { Headers.Remove("Content-Type"); Headers["Content-Length"] = "0"; } else { data = GetData(); Headers["Content-Length"] = (data != null) ? data.Length.ToString() : "0"; } if (Code >= 500) Headers["Connection"] = "close"; var hdrBuffer = new StringBuilder(); hdrBuffer.AppendFormat("{0}/{1} {2} {3}\r\n", protocol, version, Code, Reason); foreach (string hdr in Headers) foreach (var value in Headers.GetValues(hdr)) hdrBuffer.AppendFormat("{0}: {1}\r\n", hdr, value); hdrBuffer.Append("\r\n"); connection.Send(Encoding.ASCII, hdrBuffer.ToString()); connection.Send(data); }
public HttpRequestHeader(HttpConnection connection, Socket socket) { if (connection == null) throw new ArgumentNullException("connection"); if (socket == null) throw new ArgumentNullException("socket"); this.connection = connection; this.socket = socket; this.buffer = new StringBuilder(1024); this.portion = new byte[1024]; }
internal void Send(HttpConnection connection) { Send(connection, Protocol, Version); }