2012-08-09 23 views
9

本週我寫了兩個ASP.NET Web API應用程序,它們都包含一個簡單的控制器;我已經調整了各自的工作方式,包括例外情況等,但它們的配置幾乎與我所看到的相同。如何指定我是否想在ASP.NET Web API中使用JSON或XML?

其中一個返回JSON,另一個返回XML。我希望他們都返回JSON!

我找了一些可能控制這種行爲的配置,但我沒有快樂。控制ASP.NET Web API使用的序列化類型的設置在哪裏?

回答

10

它是由什麼叫客戶端(例如瀏覽器或您的.NET客戶端)通過在接受頭文件中定義:

接受:應用/ JSON,應用/ XML,文本/ JSON,文本/ XML

將有JSON的偏好(如果可能)

所以,你的客戶端返回XML需要設置Accept頭是高於或乾脆

接受:應用/ JSON

應該做的伎倆

2

要限制輸出到只有一個格式,試試這裏的說明:

http://www.asp.net/web-api/overview/formats-and-model-binding/json-and-xml-serialization#removing_the_json_or_xml_formatter

相關提示,以下鏈接介紹了ASP.NET Web API如何根據發送給它的HTTP請求決定使用何種輸出格式,即它如何選擇JSON over XML:

http://www.asp.net/web-api/overview/formats-and-model-binding/content-negotiation

,如果你想仍然支持這兩種格式,但需要確保自己的客戶端代碼總是收到回JSON這可能是有用的。

相關問題