首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从WebAPI 2终结点返回自定义HTTP状态代码

从WebAPI 2终结点返回自定义HTTP状态代码
EN

Stack Overflow用户
提问于 2014-05-01 06:38:20
回答 4查看 55.1K关注 0票数 55

我正在处理WebAPI 2中的一个服务,端点当前返回一个IHttpActionResult。我想返回一个状态代码422,但是因为它不在HttpStatusCode枚举中,所以我不知道如何发送它,因为所有的构造函数都需要一个HttpStatusCode参数

现在,我返回的是BadResult(message),但是返回422 +消息会更具描述性,对我的客户也更有用。有什么想法吗?

EN

回答 4

Stack Overflow用户

发布于 2016-07-04 11:23:35

代码语言:javascript
复制
 return Content((HttpStatusCode) 422, whatEver);

致谢:Return content with IHttpActionResult for non-OK response

您的代码必须为<= 999

请忽略100到200之间的代码。

票数 27
EN

Stack Overflow用户

发布于 2017-08-17 01:24:12

我用这种方式简单而优雅。

代码语言:javascript
复制
public ActionResult Validate(User user)
{
     return new HttpStatusCodeResult((HttpStatusCode)500, 
               "My custom internal server error.");
}

然后是角度控制器。

代码语言:javascript
复制
function errorCallBack(response) {            
$scope.response = {
   code: response.status,
   text: response.statusText
}});    

希望能对你有所帮助。

票数 3
EN

Stack Overflow用户

发布于 2019-08-08 02:41:39

另一个简化的例子:

代码语言:javascript
复制
public class MyController : ApiController
{
    public IHttpActionResult Get()
    {
        HttpStatusCode codeNotDefined = (HttpStatusCode)422;
        return Content(codeNotDefined, "message to be sent in response body");
    }
}

Content是在抽象类ApiController中定义的虚拟方法,该类是控制器的基础。声明如下:

代码语言:javascript
复制
protected internal virtual NegotiatedContentResult<T> Content<T>(HttpStatusCode statusCode, T value);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23399272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档