У меня есть простой тестовый API
[Route("api/[controller]")]
[Produces("application/json")]
[ApiController]
public class ValuesController : ControllerBase
{
[HttpPost]
public IActionResult Post([FromBody] FulfillmentRequst data)
{
var obj = new DummyObject();
Ok(obj)
}
}
Проблема может быть замечена в журналах, когда почтовый запрос поступает как UTF-8, но ответ отправляется в UTF-16.
информация: Microsoft.AspNetCore.Hosting.Internal.WebHost [1]
Запрос запуска HTTP / 1.1 POST http://371395ef.ngrok.io/api/values application / json; кодировка = UTF-8 3401
info: Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker [1]
Маршрут соответствует {action = "Post", controller = "Values"}. Выполнение действия WebApplicationAPI.Controllers.ValuesController.Post (WebApplicationAPI)
информация: Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker [1]
Выполнение метода действия
WebApplicationAPI.Controllers.ValuesController.Post (WebApplicationAPI) с аргументами (ActionsOnGoogle.Core.v2.Request.FulfillmentRequst) - Состояние проверки: действительно
информация: Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker [2]
Выполнен метод действия WebApplicationAPI.Controllers.ValuesController.Post (WebApplicationAPI), возвращен результат Microsoft.AspNetCore.Mvc.OkObjectResult в 8,796 мс.
информация: Microsoft.AspNetCore.Mvc.Infrastructure.ObjectResultExecutor [1]
Выполнение ObjectResult, запись значения типа «ActionsOnGoogle.Core.v2.Response.SimpleResponseResponse».
информация: Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker [2]
Выполнено действие WebApplicationAPI.Controllers.ValuesController.Post (WebApplicationAPI) в 267.2988 мс
информация: Microsoft.AspNetCore.Hosting.Internal.WebHost [2]
Запрос завершен в 508.7373ms 200 заявка / JSON; кодировка = UTF-16 * * тысячи двадцать-одина
Это совершенно новый .net core web api. Я ничего не изменил в настройках. Как заставить его вернуть utf-8 при возврате ответа json от API.
Основная проблема заключается в том, что сервер при другом чтении из веб-хука, очевидно, не может обработать utf-16, анализируя его как мусор.
Ожидается объект сообщения, но он получен: \ "猀 攀 ∀ 㨀 琀 爀 甀 攀 Ⰰ∀ 爀 椀 挀 栀 刀 攀 猀 瀀 漀 渀 猀 攀 ∀ 㨀 笀 ∀ 椀 琀 攀 洀 猀 ∀ 㨀 嬀 笀 ∀ 猀 椀 洀 瀀 氀 攀 刀 攀 猀 瀀 漀 渀 猀 攀∀ 㨀 笀 ∀ 琀 攀 砀 琀 吀 漀 匀 瀀 攀 攀 挀 栀 ∀ 㨀 ∀ 圀 伀 刀 䬀 䐀 䄀 䴀 䤀 吀 ∀ 紀 紀 崀 紀 紀 紀 紀 \ ""