Ядро ASP.NET: установите кодировку, отличную от UTF-8 в Json Response - PullRequest
0 голосов
/ 26 марта 2019

У меня есть запрос на получение в моем контроллере в проекте ASP.NET Core

    [HttpGet]
    [Route("api/controller/getlastresult/{id}")]
    public IActionResult GetLatestResultForController(string id)
    {
        Response.ContentType = "application/json";

        var list = _dbAccessLayer.GetAllVoteResults();
        var appropriateResults = list.Where(item => item.DeviceId.Equals(id) && item.Status == "Finished")
            .OrderBy(item => item.TimeStarted);

        if (appropriateResults.Any())
            return Ok(Json(appropriateResults.Last().Result));

        return BadRequest();
    }

Работает нормально, но в заголовках есть Content-Type: application / json; charset = utf-8, как вы можете видеть здесь:

enter image description here

Мне нужно просто обычное приложение / json, без charset utf-8, так что, я думаю, это будет ASCII charset. Причина в том, что я использую этот запрос с микроконтроллером, которому не нравится кодировка utf-8.

Как настроить chaset в ответе на мой запрос Get? Спасибо

1 Ответ

0 голосов
/ 27 марта 2019

Для удаления кодировки, вы можете попробовать промежуточное ПО, например

app.Use(async (context, next) =>
{
    context.Response.OnStarting((state) =>
    {
        if (context.Response.Headers.Count > 0 && context.Response.Headers.ContainsKey("Content-Type"))
        {
            var contentType = context.Response.Headers["Content-Type"].ToString();
            if (contentType.StartsWith("application/json"))
            {
                context.Response.Headers.Remove("Content-Type");
                context.Response.Headers.Append("Content-Type", "application/json");
            }
        }

        return Task.FromResult(0);
    }, null);
    await next.Invoke();
});
...