针对404/400响应的.Net Web API抛出异常/返回响应/返回错误响应?

Sta*_*ish 3 rest asp.net-mvc asp.net-web-api

我正在使用.net web api开发一些宁静的Web服务.

在某些情况下,我需要向客户端返回404(NotFoundStatus)或400(BadRequest).

看起来在框架中有很多方法可以做到这一点.下面列出了我所知道的一些方法.

是否有任何指导方针选择使用哪一个来回复这些回复?

        return Request.CreateErrorResponse(HttpStatusCode.NotFound, "Error");

        return Request.CreateResponse(HttpStatusCode.NotFound, "Error");

        throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound) { Content = new StringContent("Error") });
Run Code Online (Sandbox Code Playgroud)

Kir*_*lla 7

  • CreateErrorResposne扩展用于创建内容协商响应,但它还具有应将多少此错误信息发送回客户端的逻辑.我们的想法是不向客户透露太多可能是安全问题的信息.例如,httpConfig.IncludeErrorDetailPolicy确定将多少信息发送回客户端.

  • CreateResponse上面的扩展也用于创建内容协商的反应,但它并没有任何我上面提到的附加逻辑的CreateErrorResponse.

  • 在第三种情况下,响应是不是内容的谈判,你总是在被发回的内容text/plain格式,同时它并不会有额外的逻辑,如CreateErrorResposne