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

时间:2013-06-13 07:47:05

标签: asp.net-mvc rest 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") });

1 个答案:

答案 0 :(得分:7)

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

  • 上面的CreateResponse扩展程序也用于创建内容协商的响应,但它具有我提到的任何其他逻辑以上为CreateErrorResponse

  • 在第三种情况下,响应是内容协商,您将始终以text/plain格式发回内容,而且不 em>具有CreateErrorResposne

  • 中的其他逻辑