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