public async Task Invoke(HttpContext context, LogRequest logRequest) { var requestBodyStream = new MemoryStream(); var originalRequestBody = context.Request.Body; await context.Request.Body.CopyToAsync(requestBodyStream); requestBodyStream.Seek(0, SeekOrigin.Begin); logRequest.WriteLogRequest(requestBodyStream, context.Request.Headers); requestBodyStream.Seek(0, SeekOrigin.Begin); context.Request.Body = requestBodyStream; await _next.Invoke(context); context.Request.Body = originalRequestBody; }