1
Я пытаюсь вернуть заголовок сущности «Разрешить» в ответном сообщении, и я получаю следующее сообщение:Возвращение «Разрешить» Entity заголовок с HTTPResponseMessage в WCF Web API
{ "Заголовок не может быть добавлен . Убедитесь в том, чтобы добавить заголовки запросов к 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
Я думаю, что это потому, что в RFC «Разрешить» называется «заголовок объекта», тогда как другие - заголовки ответов. –
В качестве примечания стороны вам не нужно указывать метод = «Удалить» явно, если вы используете MapServiceRoute. Он схватит удаление по соглашению с именем метода «DeleteOrder» –