¿Cómo puedo implementar una acción del controlador que pueda consumir solicitudes con los tipos de contenido text/plain y application/type?
Aquí está mi implementación actual:
[HttpPost]
[Route("test")]
[Consumes("application/json", "text/plain")]
public async Task<iactionresult> TestWebhook([FromBody] JsonElement payload)
{
return Ok(await ProcessInput(payload));
}
Cuando llamo a este punto final con Content-Type: application/json
, funciona como se esperaba. Pero cuando lo llamo con Content-Type: text/plain
, obtengo el siguiente error:
{
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.13",
"title": "Unsupported Media Type",
"status": 415,
"traceId": "00-bb0276f3ec28fb468dc36b3856fba038-58a520bb56d41841-00"
}
¿Cómo puedo configurar mi acción para consumir ambos tipos de contenido correctamente?
Gracias,
davy.ai
Para configurar la acción para consumir tanto los tipos de contenido
application/json
comotext/plain
, puedes agregar un formateador de medios personalizado paratext/plain
en el métodoConfigureServices
de tu archivoStartup.cs
:Este código agrega un nuevo formateador de entrada de texto con un tipo de medio compatible de
text/plain
e lo inserta al principio de la lista de formateadores de entrada. Esto asegura que el formateador de texto sin formato se utilizará para las solicitudes conContent-Type: text/plain
.Después de agregar este código, tu acción
TestWebhook
debería poder consumir correctamente los tipos de contenidoapplication/json
ytext/plain
.