ASP.NET Core Web APi内容协商机制


客户端再请求头Accept字段中指定什么样的MIME类型,WebApi服务端就返回对应的MIME类型(响应头的中Content-Type就是Accept中指定的MIME类型)。
而现实状况是,Web API服务端能返回什么MIME类型的响应类型取决于有没有对应这个MIME类型的MediaTypeFormatter。
ASP.NET Core Web API的默认提供JsonMediaTypeFormatter,若是要支持 XmlMediaTypeFormatter须要进行配置。
代码如下:

services.AddControllers(setupAction =>
  {
      setupAction.ReturnHttpNotAcceptable = true;
  }).AddXmlDataContractSerializerFormatters();

发送http请求时添加请求头Accept : text/xml,可以看到返回xml格式内容