16
我有一個Web API項目,返回一些產品數據。它根據請求的Accept頭(JSON/XML)正確地協商返回類型。問題是,如果沒有指定Accept頭,它將返回JSON,但我希望它默認返回XML。如何更改Global.asax中的內容協商默認值?如何更改默認的ASP.NET MVC Web API媒體格式化程序?
我有一個Web API項目,返回一些產品數據。它根據請求的Accept頭(JSON/XML)正確地協商返回類型。問題是,如果沒有指定Accept頭,它將返回JSON,但我希望它默認返回XML。如何更改Global.asax中的內容協商默認值?如何更改默認的ASP.NET MVC Web API媒體格式化程序?
發現通過http://www.strathweb.com/2013/06/supporting-only-json-in-asp-net-web-api-the-right-way/
新增了一個解決方案中WebApiConfig.Register()
:
config.Formatters.Clear();
config.Formatters.Add(new XmlMediaTypeFormatter());
config.Formatters.Add(new JsonMediaTypeFormatter());
config.Formatters.Add(new FormUrlEncodedMediaTypeFormatter());
所以默認爲XML,第一格式,但API仍然支持JSON請求是否需要它。
在上面的代碼中也添加'FormUrlEncodedMediaTypeFormatter',因爲默認情況下Web API在該集合中也有該格式化程序 –
這個** FormUrlEncodedMediaTypeFormatter **的作用是什麼?我看到,沒有任何回報! –
@Sunny它應該返回URL格式的值(http://msdn.microsoft.com/en-us/library/system.net.http.formatting.formurlencodedmediatypeformatter(v=vs.118).aspx)like'myVariable = 1&myOtherVariable = test' – Edgar