REST服务应提供内容协商。这意味着客户端发送一个包含响应所需内容类型的Accept头。如果该服务不支持此媒体类型,则应使用状态码406(不可接受)进行响应。ASP.NET Core中的状态码406(不可接受)
我尝试将此行为映射到ASP.NET Core。如果ASP.NET核心无法识别Accept头中的媒体类型,则返回JSON文档。在此框架的以前版本上述行为可以通过增加一个特殊的输出格式的配置来实现:
public void ConfigureServices(IServiceCollection services) {
services.AddMvc(options => {
options.OutputFormatters.Insert(0, new HttpNotAcceptableOutputFormatter());
});
}
不幸的是,HttpNotAcceptableOutputFormatter
从RC1之后的ASP.NET核心框架去除。在当前版本的框架中是否有替代这个类的东西?
你究竟发现了什么?! – Mardoxx
@Mardoxx看着RC2分支和[找到文件](https://github.com/aspnet/Mvc/blob/1.0.0-rc2/src/Microsoft.AspNetCore.Mvc.Core/Formatters/HttpNotAcceptableOutputFormatter.cs )使用文件搜索(键盘快捷键:T)。这告诉我该文件最初位于何处。然后我去了[开发分支上的文件夹的历史记录](https://github.com/aspnet/Mvc/commits/dev/src/Microsoft.AspNetCore.Mvc.Core/Formatters),并使用“二进制搜索” GitHub UI找到删除文件的提交。 – poke