gpt4 book ai didi

asp.net-mvc-4 - 无法让 ASP.NET 4 Web API 返回状态代码 "201 - Created"以成功进行 POST

转载 作者:行者123 更新时间:2023-12-04 07:26:32 24 4
gpt4 key购买 nike

我正在尝试返回 201 Created 的 HTTP 状态代码对于使用 ASP.NET 4 Web API 的 RESTful POST 操作,但我总是收到 200 OK .

我目前正在 IIS 7.5.7600.16385、VS 2010 Professional、Windows 7 64-bit Professional 上调试。

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;
}

我看过其他例子,其中 HttpContext.Current.Response.StatusCode在返回数据之前设置,所以我认为这不会成为问题。我还没有在 MVC 4 源代码中找到它。

(这与我对 this question 的调查有关,但主题不同,足以证明自己的问题)

我不确定问题是 IIS 还是 Web API。我会做进一步的测试来缩小范围。

最佳答案

HttpContext.Current是过去的宿醉。

您需要将响应定义为 HttpResponseMessage<T> :

public HttpResponseMessage<MyResource> Post(MyResource myResource)
{
.... // set the myResource
return new HttpResponseMessage<MyResource>(myResource)
{
StatusCode = HttpStatusCode.Created
};
}

更新

您可能会从评论中注意到,这种方法适用于 测试版 释放。 不是 RC。

关于asp.net-mvc-4 - 无法让 ASP.NET 4 Web API 返回状态代码 "201 - Created"以成功进行 POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10357526/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com