2013-06-13 73 views
3

我正在使用.net web api开发一些宁静的web服务。.Net Web API针对404/400响应抛出异常/返回响应/返回错误响应?

我需要在某些情况下向客户端返回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") }); 

回答

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

  • 上述CreateResponse扩展也用于创建内容协商反应,但它确实不任何我上述用于CreateErrorResponse附加逻辑。

  • 在第三种情况下,响应内容的谈判,你总是在text/plain格式发回的内容,也确实没有额外的逻辑为CreateErrorResposne