public static HttpRequest Parse(ReadOnlySpan <byte> bytes) { int parsed; HttpRequestLine requestLine; if (!HttpRequestParser.TryParseRequestLine(bytes, out requestLine, out parsed)) { throw new NotImplementedException("request line parser"); } bytes = bytes.Slice(parsed); HttpHeaders headers; if (!HttpRequestParser.TryParseHeaders(bytes, out headers, out parsed)) { throw new NotImplementedException("headers parser"); } var body = bytes.Slice(parsed); var request = new HttpRequest(requestLine, headers, body); return(request); }
public static HttpRequest Parse(Span <byte> bytes) { int parsed; HttpRequestLine requestLine; if (!HttpRequestParser.TryParseRequestLine(bytes, out requestLine, out parsed)) { throw new NotImplementedException(); } bytes = bytes.Slice(parsed); HttpHeaders headers; if (!HttpRequestParser.TryParseHeaders(bytes, out headers, out parsed)) { throw new NotImplementedException(); } var body = bytes.Slice(parsed + 4); // TODO: this needs to verify two newlines var request = new HttpRequest(requestLine, headers, body); return(request); }