2013-06-13 104 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