什么是正确的HttpStatusCode返回缺少的必需参数?

时间:2013-04-08 14:06:55

标签: http-status-codes asp.net-web-api

我正在构建一个Web API方法来检查名称是否是该类型的唯一名称,并且需要确保给出name参数。返回的正确状态代码是什么?

public HttpResponseMessage GetIsNameUnique(string name)
{
  if (string.IsNullOrWhiteSpace(layoutName))
  {
      throw new HttpResponseException(new HttpResponseMessage { 
        StatusCode = HttpStatusCode.{What Goes Here?},
         Content = new StringContent("The name is required.")
      });
  }
  // more code here to check....
}

2 个答案:

答案 0 :(得分:2)

400,或者如果name参数是URI的一部分,那么您可以返回404。

答案 1 :(得分:0)

编辑:400似乎是最好的答案,而不是我在下面提到的412。

在查看此问题的评论中的codebox提供的链接后,我将使用412,PreconditionFailed。从System.Net.HttpStatusCode文件

// Summary:
//     Equivalent to HTTP status 412. System.Net.HttpStatusCode.PreconditionFailed
//     indicates that a condition set for this request failed, and the request cannot
//     be carried out. Conditions are set with conditional request headers like
//     If-Match, If-None-Match, or If-Unmodified-Since.