我正在使用.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") });
答案 0 :(得分:7)
CreateErrorResposne
扩展程序用于创建内容协商的响应,但它也具有应将多少此错误信息发送回客户端的逻辑。我们的想法是不向客户透露太多可能是安全问题的信息。例如,httpConfig.IncludeErrorDetailPolicy
确定将多少信息发送回客户端。
上面的CreateResponse
扩展程序也用于创建内容协商的响应,但它不具有我提到的任何其他逻辑以上为CreateErrorResponse
。
在第三种情况下,响应是不内容协商,您将始终以text/plain
格式发回内容,而且不> em>具有CreateErrorResposne