選擇或取消ASP.NET WebAPI的JSON、XML輸出格式

ASP.NET WebAPI支援XML、JSON兩種輸出格式,在這個JSON氾濫的年代XML顯然已經不討喜,這篇廢文就是教你怎麼關掉XML的回應。

ASP.NET WebAPI選擇輸出格式的方法

  1. 使用XML輸出

在HTTP Request中送出下列指令,就可以得到XML回應資料。

Accept: "application/xml"
  1. 使用JSON輸出

在HTTP Request中送出下列指令,就可以得到JSON回應資料。

Accept: "application/json"

取消ASP.NET WebAPI某種輸出格式的方法

基本上都是關掉XML啦,下面我還是都把兩個範例寫出來。基本上如果你兩個格式都關閉的話,ASP.NET WebAPI會採用「檔案輸出」的方式餵資料給你,也是蠻妙的。

void Application_Start(object sender, EventArgs e)
{
  //關閉XML回應格式
  System.Web.Http.GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();
  //關閉JSON回應格式(你不是真的想這樣做吧?)
  //System.Web.Http.GlobalConfiguration.Configuration.Formatters.JsonFormatter.SupportedMediaTypes.Clear();
}

最後要注意的事情是,如果你採用上面的程式碼,把系統的格式鎖定到剩下JSON格式,那麼無論你給什麼HTTP Accept Header,甚至沒有給Accept,所有的輸出一律都剩下JSON格式喔,這意味著JSON格式就是WebAPI輸出的預設值。

相關參考

ASP.NET WebAPI ResponseMode ResponseFormat JSON XML Files