上图粗略描述,浏览器请求json格式文件,服务器如果无法发送json文件需要跟浏览器协商,协商成功后返回一个服务器支持的格式文件比如xml,协商失败返回415表示不支持浏览器想要的格式。
设置Request和Response支持的文件格式
全局设置
添加Fliters实现
builder.Services.AddControllers(options =>
{
options.Filters.Add(new ProducesAttribute("application/json")); //Response Body
options.Filters.Add(new ConsumesAttribute("application/json")); //Request Body
});
Attribute设置
添加Produces Attribute
[HttpGet]
[Produces("application/xml")]
public async Task<ActionResult<IEnumerable<City>>> GetCities()
{
var cities = await _context.Cities.OrderBy(c => c.CityName).ToListAsync();
return cities;
}
Program.cs中需要添加AddXmlSerializerFormatters()
builder.Services.AddControllers(options =>
{
options.Filters.Add(new ProducesAttribute("application/json")); //Response Body
options.Filters.Add(new ConsumesAttribute("application/json")); //Request Body
}).AddXmlSerializerFormatters();
Gitee获取源码: