在asp .net core webapi中,http請求的響應數據如果是null的話,我們知道狀態碼會返回204,即NoContent,為什么會出現這種情況呢?
因為在返回響應數據的時候,null值會被額外的被HttpNoContentOutputFormatter包裝,它會默認把null值當作服務器端沒有數據響應,響應狀態碼為204處理。所以客戶端在接收到響應數據的時候,返回的是204 NoContent。
但是在某些應用中,它可能把204狀態碼當作一種錯誤的響應碼(如:IOS端釘釘小程序),所以這時候要求服務端要返回響應數據null,而不是空數據,並且狀態碼要變為200。所以這時候我們就要把HttpNoContentOutputFormatter給重新封裝,代碼如下:
還需要引入Microsoft.AspNetCore.Mvc.Formatters命名空間,進行如下配置:
如上配置之后,再次請求,結果為null返回的狀態碼就是200,響應數據就是null,而不是空數據了。