默认情况下WebApi 返回的数据类型是Json格式的数据,XML请求的也会返回json格式,这显然不是我们想要的

MvcOptions.ReturnHttpNotAcceptable的默认值为false, 此时,如果服务器端不支持http request中Accept的格式值,比如application/xml,则不会报错,返回默认格式的结果 也就是 json 格式的数据。
此时我们需要让他启用。
也就是 设置为true


services.AddControllers(setupAction =>
{

    setupAction.ReturnHttpNotAcceptable = true;
})

但是此时 ,如果是XML的请求,则返回的 406 Not Acceptable

所有我们需要添加对XML的数据支持

传统的方法是在 AddControllers添加
setupAction.OutputFormatters.Add(
new XmlDataContractSerializerOutputFormatter()
);

但是新的我们将是这样 的

 services.AddControllers(setupAction =>
 {

     setupAction.ReturnHttpNotAcceptable = true;


     ////给控制器添加对XML的支持
     //setupAction.OutputFormatters.Add(
     //    new XmlDataContractSerializerOutputFormatter()
     //);
 }).AddXmlDataContractSerializerFormatters();//给控制器添加对XML的支持

这样就能返回 XML的数据格式了。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐