public async ValueTask <HttpRequestLog> Handle(HttpRequest request, CancellationToken cancellationToken = default) { if (request == null) { throw new NullReferenceException(nameof(request)); } request.EnableBuffering(); var logMessage = await CreateLogMessage(cancellationToken); if (logMessage == null) { throw new NullReferenceException(nameof(logMessage)); } if (request.HasFormContentType) { await _formContentHandler.Handle(request, logMessage, cancellationToken); } else { await _bodyHandler.Handle(request.Body, logMessage, cancellationToken); } return(logMessage); }
public async ValueTask <HttpRequestLog> Handle(HttpRequest request, CancellationToken cancellationToken = default) { if (request == null) { throw new NullReferenceException(nameof(request)); } var logMessage = _logMessageFactory.Create(request); if (request.HasFormContentType) { await _formContentHandler.Handle(request, logMessage, cancellationToken); } else { var reader = new HttpMessageLogBodyReader(_options.Request.IgnoreContentTypes); var body = await reader.ReadAsync(request.Body, request.ContentType, request.ContentLength, cancellationToken); logMessage.SetBody(body); } return(logMessage); }