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