internal static bool TryParseRequestLine(ReadOnlySpan <byte> buffer, out HttpRequestLine requestLine, out int totalParsedBytes) { requestLine = new HttpRequestLine(); totalParsedBytes = 0; var reader = new HttpRequestReader(); reader.Buffer = buffer; requestLine.Method = reader.ReadMethod(); if (requestLine.Method == HttpMethod.Unknown) { return(false); } requestLine.RequestUri = reader.ReadRequestUri(); if (requestLine.RequestUri.Length == 0) { return(false); } requestLine.Version = reader.ReadHttpVersion(); if (requestLine.Version == HttpVersion.Unknown) { return(false); } totalParsedBytes = buffer.Length - reader.Buffer.Length; return(true); }
internal static bool TryParseRequestLine(ReadOnlySpan<byte> buffer, out HttpRequestLine requestLine, out int totalParsedBytes) { requestLine = new HttpRequestLine(); totalParsedBytes = 0; var reader = new HttpRequestReader(); reader.Buffer = buffer; requestLine.Method = reader.ReadMethod(); if(requestLine.Method == HttpMethod.Unknown) { return false; } requestLine.RequestUri = reader.ReadRequestUri(); if(requestLine.RequestUri.Length == 0) { return false; } requestLine.Version = reader.ReadHttpVersion(); if (requestLine.Version == HttpVersion.Unknown) { return false; } totalParsedBytes = buffer.Length - reader.Buffer.Length; return true; }