2

我正在使用 asp.net core 2.2 并尝试允许 XML 的附加内容类型值。所以我这样配置Startup.cs

services.AddMvc(options =>
        {
            options.ReturnHttpNotAcceptable = true;
            options.OutputFormatters.Add(new XmlDataContractSerializerOutputFormatter());
            options.InputFormatters.Add(new XmlSerializerInputFormatter(options));
        })
        .SetCompatibilityVersion(CompatibilityVersion.Version_2_2); 

事实上,我最终获得415 Unsupported Media Type了邮递员的地位。有没有人成功添加 XML 内容类型值?

作者控制器.cs:

    [HttpPost]
    public ActionResult CreateAuthor([FromBody] AuthorForCreationDto author)
    {
        ...
    }

在此处输入图像描述

在此处输入图像描述

4

1 回答 1

0

您需要设置RespectBrowserAcceptHeader为 true 以允许内容协商。

// Add XML Content Negotiation
config.RespectBrowserAcceptHeader = true;


services.AddMvc(options => {
    //Enable this to allow content negotiation.
    options.RespectBrowserAcceptHeader = true;

    options.ReturnHttpNotAcceptable = true;
    options.OutputFormatters.Add(new XmlDataContractSerializerOutputFormatter());
    options.InputFormatters.Add(new XmlSerializerInputFormatter(options));
})
.SetCompatibilityVersion(CompatibilityVersion.Version_2_2); 
于 2019-04-17T01:48:09.007 回答