首页 > 解决方案 > 如何更改 ASP.NET Core API 中的默认响应内容类型?

问题描述

我正在将遗留 API 重新实现为ASP.NET Core web API. 我已经实现了内容协商,并且运行良好 - 所有操作都支持基于请求中的响应JSON格式。我的问题是,如果没有指定 Accept 标头,原始 API 默认为 XML,而我的 ASP.NET Core API 默认为 JSON。当没有 Accept 标头时,如何创建默认响应内容类型 XML?XMLAccept header

标签: asp.net-core-webapi

解决方案


你可以在里面配置Startup

public void ConfigureServices(IServiceCollection services)
    {

        services.AddMvc(options => {
            options.OutputFormatters.Insert(0, new XmlDataContractSerializerOutputFormatter());
        }).SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
    }

或者只是使用控制器中的属性Produces

[Produces("application/xml")]
public class MyController()
{
 ...
}

推荐阅读