1
내가 응답 메시지 내에서 '허용'엔티티 헤더를 반환하기 위해 노력하고있어 나는 다음과 같은 메시지가 계속 :는 WCF 웹 API에 HTTPResponseMessage와 엔티티 헤더 '허용'을 반환
이 이{ "헤더를 추가 할 수 없습니다 . 객체 HttpContent에 HttpResponseMessage에 응답 헤더 및 콘텐츠 헤더, HttpRequestMessage에 요청 헤더를 추가해야합니다 "}
는 여기에 코드입니다 :.
이[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를 사용하는 경우 명시 적으로 Method = "Delete"를 지정할 필요가 없습니다. 그것은 "DeleteOrder"메소드 이름의 관례에 따라 삭제를 가져옵니다. –