public void Parse() { var s = _tcp.GetStream(); bool done = false; var sb = new StringBuilder(); bool header = false; while(!done) { if(s.DataAvailable) { sb.Append(Encoding.ASCII.GetString(new byte[] { (byte)s.ReadByte() })); if (!header) { if (sb.ToString().EndsWith("\r\n\r\n")) { var headers = sb.ToString(); Header = new HttpHeader(headers); header = true; sb.Clear(); } } } else { Body = sb.ToString(); done = true; } } }
public WebSharpInterpiter(string src, HttpHeader h, HttpRequest rh) { Headers.Fields.Clear(); Raw = src; ReqHeaders = rh; WriteHeader = (s) => { Headers.Fields.Add(new GenericHeader() { Raw = s }); }; }