如何更改 ASP.NET Core API 中的默认响应内容类型?

Ala*_*nes 5 asp.net-core-webapi

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

War*_*red 2

您可以在Startup

public void ConfigureServices(IServiceCollection services)
    {

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

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

[Produces("application/xml")]
public class MyController()
{
 ...
}
Run Code Online (Sandbox Code Playgroud)