Agregar un nuevo MediaType a NewtonsoftJsonInputFormatter no funciona.
Me gustaría agregar un nuevo MediaType al formateador de entrada MvcOptions
en .Net 5.
Cuando hago lo siguiente:
services.AddControllers();
services.Configure<Microsoft.AspNetCore.Mvc.MvcOptions>(options =>
{
options.InputFormatters
.OfType<Microsoft.AspNetCore.Mvc.Formatters.SystemTextJsonInputFormatter>()
.First()
.SupportedMediaTypes
.Add(new Microsoft.Net.Http.Headers.MediaTypeHeaderValue("application/csp-report"));
});
Todo funciona bien. Pero quiero usar Newtonsoft.Json en lugar del JsonSerializer predeterminado, así que cambié mi código a:
services.AddControllers()
.AddNewtonsoftJson();
services.Configure<Microsoft.AspNetCore.Mvc.MvcOptions>(options =>
{
options.InputFormatters
.OfType<Microsoft.AspNetCore.Mvc.Formatters.NewtonsoftJsonInputFormatter>()
.First()
.SupportedMediaTypes
.Add(new Microsoft.Net.Http.Headers.MediaTypeHeaderValue("application/csp-report"));
});
Pero ahora, cada vez que se envía un application/csp-report
al controlador, obtengo un código de estado 415.
davy.ai
Como experto en IT especializado en json.net, .net-5, media-type y input formatter, para añadir un nuevo MediaType al
MvcOptions
input formatter en .Net 5 cuando se utiliza Newtonsoft.Json en lugar del serializador Json por defecto, deberías seguir estos pasos:AddControllers()
porAddControllers().AddNewtonsoftJson()
para utilizar el serializador Newtonsoft.Json en lugar del serializador por defecto.MvcOptions
para incluir el nuevo tipo de mediaapplication/csp-report
para NewtonsoftJsonInputFormatter de la siguiente manera:Después de estos pasos, deberías poder enviar datos con el tipo de media
application/csp-report
a tu controlador sin recibir un código de estado 415.