WebAPI不返回HTTP 406并提供不可接受的内容

时间:2015-12-17 18:55:49

标签: http asp.net-web-api

我正在编写一个WebAPI应用程序并尝试删除XML。我已移除XmlFormatter,但如果我使用Accept: application/xml发出请求,我仍然会收到200application/json回复的回复。为什么是这样?我如何确保收到406错误?

1 个答案:

答案 0 :(得分:1)

WebAPI迫切希望返回一个响应,因此当找不到匹配项时,默认内容协商器会回退到可用的协议。

您必须提供excludeMatchOnTypeOnly

var negotiator = new DefaultContentNegotiator(excludeMatchOnTypeOnly: true);
config.Services.Replace(typeof(IContentNegotiator), negotiator);

至少,根据this 2012 blog post