Http Web API-如何在响应中返回特定的状态代码?
我希望实现正确的HTTP语义,并根据资源是创建的还是更新的,以及在响应内容中描述创建的资源,返回从PUT操作创建的200 OK或201Http Web API-如何在响应中返回特定的状态代码?,http,asp.net-web-api,Http,Asp.net Web Api,我希望实现正确的HTTP语义,并根据资源是创建的还是更新的,以及在响应内容中描述创建的资源,返回从PUT操作创建的200 OK或201 遗憾的是,PUT的WebAPI示例没有向您展示如何做到这一点。您应该如何指定错误代码并返回响应正文?如果您确实可以返回请求内容,那么下面是一种更有效的方法。这将避免所有内容的反序列化和重新序列化 // PUT // path/to/{resourceName} public HttpResponseMessage Put(CreateR
遗憾的是,PUT的WebAPI示例没有向您展示如何做到这一点。您应该如何指定错误代码并返回响应正文?如果您确实可以返回请求内容,那么下面是一种更有效的方法。这将避免所有内容的反序列化和重新序列化
// PUT
// path/to/{resourceName}
public HttpResponseMessage Put(CreateResourceRequest request)
{
//do stuff...
// Return 200 [OK] if it is an update and 201 [CREATED] if the resource is created.
// Usually, the response body should be same as the original request.
var responseContent = request;
return Request.CreateResponse(created ? HttpStatusCode.Created : HttpStatusCode.OK, responseContent);
}
public HttpResponseMessage Put(HttpRequestMessage request)
{
// do stuff
return new HttpResponseMessage(created ? HttpStatusCode.Created : HttpStatusCode.OK ) {
Content = request.Content
};
}
酷,这是一个很好的提示!:)