带有charset1252的ASP.NET Core Web API HttpPost

时间:2018-12-14 15:54:57

标签: c# asp.net asp.net-web-api .net-core

我正在尝试将WebAPI配置为接受UTF-8以外的字符集。我已将编码添加到JsonInputFormatter,如下所示:

 Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

        var enc1252 = Encoding.GetEncoding(1252);

        services.AddMvc(options => options.InputFormatters.OfType<JsonInputFormatter>().First().SupportedEncodings.Add(
            enc1252));

我指定以下HttpHeader:

Content-Type: application/json;charset=windows-1252

但是,我只能返回415不支持的媒体类型。 如果我将标头更新为utf-8或unicode,则可以使用。我在做什么错了?

1 个答案:

答案 0 :(得分:0)

问题是

  

options.InputFormatters.OfType()。第一

正在选择JsonPatchInputFormatter。更新以将编码添加到JsonInputFormatter和JsonInputPatchFormatter,并且解决了该问题