MVC4 REST API始终以JSON格式返回响应

时间:2014-07-21 12:12:09

标签: xml asp.net-mvc json rest asp.net-web-api

我使用MVC4 Rest APi作为我的最新项目。但我遇到了一个我无法弄清楚的问题。

我的请求支持JSON和XML格式,我从请求中获取响应没有问题。

在测试时我发现问题是在使用"Advanced Rest Client"访问此API时,即使我以JSON格式发送请求,响应也始终采用XML格式。

但如果我使用Fiddler,它工作正常,即JSON请求提供JSON响应,XML请求提供XML响应

Request headers 
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36
Origin: chrome-extension://hgmloofddffdnphfgcellkdfbfbjeloo
Content-Type: application/xml 
Accept: */*
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8


Response headers 
Cache-Control: no-cache 
Pragma: no-cache 
Content-Type: application/json; charset=utf-8 
Expires: -1 
Server: Microsoft-IIS/8.0 
Date: Mon, 21 Jul 2014 12:01:27 GMT 
Content-Length: 340 

我担心最终用户可能会面临同样的问题。那么有什么方法可以解决这个问题吗?

我所能找到的只是强制使用我的Web API的一种格式来解决这个问题。但我必须支持这两种格式。

有没有办法解决这个问题?

由于

1 个答案:

答案 0 :(得分:3)

请求的<{1}}标头指示服务器的响应类型,它用于确定请求类型。

Web API使用content negotiation来确定响应的媒体类型,特别是Content-Type标头。要确保XML响应,您需要设置Accept标题,如

Accept