3

我正在使用 .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") });
4

1 回答 1

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

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

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

于 2013-06-13T08:22:31.740 回答