【发布时间】:2015-05-05 21:39:58
【问题描述】:
我正在构建一个 REST API 并尝试在 HEAD 请求进入时为特定路由返回 405 Method Not Allowed。
rules 表示“响应必须包含 Allow 标头,其中包含所请求资源的有效方法列表。”
但是,rules 也表示“服务器不得在响应中返回消息正文。”
所以我正在使用其Content 属性null 构造我的HttpResponseMessage,但我可以提供“允许”标题的唯一方法是作为内容标题。如果我尝试将其作为 HttpResponseMessage 对象而不是 HttpContent 对象的标头提供,则会出现错误:
错误的标题名称。确保请求标头与 HttpRequestMessage 一起使用,响应标头与 HttpResponseMessage 一起使用,内容标头与 HttpContent 对象一起使用。
那么是否有可能遵守规范,或者它是那些“抓住鼻子和船”的情况之一?
【问题讨论】:
-
请显示用于创建响应的确切代码。顺便说一句,第二条规则是指对 HEAD 请求的常规回答。但是,如果不允许 HEAD 请求,则返回的不是常规响应,而是另一种响应 (405)。所以“无内容正文”的规则不适用于 405 响应。它仅适用于对 HEAD 的定期回复。问题出在其他地方。
标签: http asp.net-web-api