Dot-Net
如何指定在 ASP.NET Web API 中是需要 JSON 還是 XML?
本週我編寫了兩個 ASP.NET Web API 應用程序,它們都包含一個簡單的控制器;我已經調整了每一個以使它們工作,包括異常等等,但就我所見,它們的配置幾乎相同。
其中一個返回 JSON,另一個返回 XML。我希望他們都返回 JSON!
我已經尋找了一些可以控制這種行為的配置,但我並不高興。控制 ASP.NET Web API 使用的序列化類型的設置在哪裡?
它由呼叫客戶端(例如瀏覽器或您的 .NET 客戶端)在 Accept 標頭中傳遞的內容定義:
接受:應用程序/json、應用程序/xml、文本/json、文本/xml
將偏好 JSON(如果可能)
因此,返回 XML 的客戶端需要將
Accept標頭設置為上述或簡單接受:應用程序/json
應該做的伎倆
要將輸出限制為僅一種格式化程序,請嘗試此處的說明:
在相關說明中,以下連結介紹了 ASP.NET Web API 如何根據發送給它的 HTTP 請求決定使用哪種輸出格式,即它如何選擇 JSON 而不是 XML:
http://www.asp.net/web-api/overview/formats-and-model-binding/content-negotiation
如果您仍希望同時支持這兩種格式,但需要確保您自己的客戶端程式碼始終收到 JSON 返回,這可能會很有用。