public 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); }
public static bool TryParseHttpVersion(ByteSpan buffer, out Utf8Span httpVersion, out int parsedBytes) { var versionSpan = HttpRequestReader.SliceTo(buffer, HttpRequestReader.s_CR, HttpRequestReader.s_LF, out parsedBytes); httpVersion = new Utf8Span(versionSpan); return(parsedBytes != 0); }
public static bool TryParseRequestUri(ByteSpan buffer, out Utf8Span requestUri, out int parsedBytes) { var uriSpan = HttpRequestReader.SliceTo(buffer, HttpRequestReader.s_SP, out parsedBytes); requestUri = new Utf8Span(uriSpan); return(parsedBytes != 0); }
void LogRestOfRequest(ByteSpan buffer) { HttpRequestReader reader = new HttpRequestReader(); reader.Buffer = buffer; while (true) { var header = reader.ReadHeader(); if (header.Length == 0) { break; } Log.LogMessage(Log.Level.Verbose, "\tHeader: {0}", header.ToString()); } var messageBody = reader.Buffer; Log.LogMessage(Log.Level.Verbose, "\tBody bytecount: {0}", messageBody.Length); }
public static bool TryParseRequestLine(ByteSpan 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; }
void LogRestOfRequest(ByteSpan buffer) { HttpRequestReader reader = new HttpRequestReader(); reader.Buffer = buffer; while (true) { var header = reader.ReadHeader(); if (header.Length == 0) break; Log.LogMessage(Log.Level.Verbose, "\tHeader: {0}", header.ToString()); } var messageBody = reader.Buffer; Log.LogMessage(Log.Level.Verbose, "\tBody bytecount: {0}", messageBody.Length); }
public static bool TryParseHttpVersion(ReadOnlySpan <byte> buffer, out Utf8String httpVersion, out int parsedBytes) { httpVersion = new Utf8String(HttpRequestReader.SliceTo(buffer, HttpRequestReader.s_CR, HttpRequestReader.s_LF, out parsedBytes)); return(parsedBytes != 0); }
public static bool TryParseRequestUri(ReadOnlySpan <byte> buffer, out Utf8String requestUri, out int parsedBytes) { requestUri = new Utf8String(HttpRequestReader.SliceTo(buffer, HttpRequestReader.s_SP, out parsedBytes)); return(parsedBytes != 0); }