Asp.net mvc .Net Web API对404/400响应抛出异常/返回响应/返回错误响应?

Asp.net mvc .Net Web API对404/400响应抛出异常/返回响应/返回错误响应?,asp.net-mvc,rest,asp.net-web-api,Asp.net Mvc,Rest,Asp.net Web Api,我正在使用.NETWebAPI开发一些RESTfulWeb服务 对于某些场景,我需要向客户端返回404(NotFoundStatus)或400(BadRequest) 在这个框架中,似乎有很多方法可以做到这一点。下面列出一些我知道的方法 是否有任何关于选择哪一个来返回这些响应的指南 return Request.CreateErrorResponse(HttpStatusCode.NotFound, "Error"); return Request.Create

我正在使用.NETWebAPI开发一些RESTfulWeb服务

对于某些场景,我需要向客户端返回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") });
  • CreateErrorResposne
    扩展用于创建内容协商响应,但它还具有将多少错误信息发送回客户端的逻辑。这样做的目的是不要向客户透露太多可能是安全问题的信息。例如,
    httpConfig.IncludeErrorDetailPolicy
    确定将多少信息发送回客户端

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

  • 在第三种情况下,响应不是内容协商,您将始终以
    text/plain
    格式发回内容,并且它没有
    createErrorRespone