1
我想響應消息中返回的「允許」實體頭,我不斷收到以下消息:返回在WCF的Web API與HTTPResponseMessage「允許」實體頭
{「不能添加頁眉。確保請求頭到HttpRequestMessage,響應頭到HttpResponseMessage和內容頭添加到HttpContent對象「}
下面的代碼片段:
[WebInvoke(UriTemplate = "{id}", Method = "DELETE")]
public HttpResponseMessage<Order> DeleteOrder(int id)
{
HttpResponseMessage<Order> response = null;
try
{
if (id <= 0)
{
response = new HttpResponseMessage<Order>(HttpStatusCode.BadRequest);
}
else
{
// For brevity, I'm assuming that order - 123456 was already served and logged. Hence it cannot
// be deleted. Order 12345, however, can be deleted.
// Note: The code doesn't actual delete anything. This is just a demonstration of
// the DELETE verb
if (id == 12345)
{
return new HttpResponseMessage<Order>(HttpStatusCode.NoContent);
}
if (id == 123456)
{
response = new HttpResponseMessage<Order>(HttpStatusCode.MethodNotAllowed);
response.Headers.AddWithoutValidation("Allow", "PUT");
}
// return '404 - Not Found' status code
response = new HttpResponseMessage<Order>(HttpStatusCode.NotFound);
}
return response;
}
catch (Exception ex)
{
return response = new HttpResponseMessage<Order>(HttpStatusCode.InternalServerError);
}
}
任何意見將是非常有益的。
感謝,
多爾曼
是的,工作! :-)目前的文檔沒有提到任何東西。 – dormantroot 2012-01-05 00:21:09
我認爲這是因爲在RFC中,'允許'被稱爲'實體頭',而其他的則是響應頭。 – 2012-01-05 08:00:54
請注意,如果您使用MapServiceRoute,則不需要明確指定Method =「Delete」。它將按照慣例從方法名稱「DeleteOrder」中獲取刪除 – 2012-01-07 22:27:57