Não é possível obter a API da Web do ASP.NET 4 para retornar o código de status "201 - Created" para POST bem-sucedido
Eu estou tentando retornar um código de status HTTP de201 Created
para uma operação RESTful POST usando a API da Web do ASP.NET 4, mas sempre obtenho200 OK
.
Atualmente estou depurando no IIS 7.5.7600.16385, no VS 2010 Professional, no Windows 7 64-bit Professional.
<code>public MyResource Post(MyResource myResource) { MyResource createdResource; ... HttpResponse response = HttpContext.Current.Response; response.ClearHeaders(); // added this later, no luck response.ClearContent(); // added this later, no luck response.StatusCode = (int)HttpStatusCode.Created; SetCrossOriginHeaders(response); return createdResource; } </code>
Eu vi outros exemplos ondeHttpContext.Current.Response.StatusCode
está definido antes de devolver os dados, por isso não pensei que isso seria um problema. Eu ainda não o localizei na fonte do MVC 4.
(Isso está relacionado às minhas investigações comessa questão mas diferente o suficiente para justificar sua própria pergunta)
Não tenho certeza se o problema é IIS ou a API da Web. Eu farei mais testes para reduzi-lo.