Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml MVC4RESTAPI始终以JSON格式返回响应_Xml_Asp.net Mvc_Json_Rest_Asp.net Web Api - Fatal编程技术网

Xml MVC4RESTAPI始终以JSON格式返回响应

Xml MVC4RESTAPI始终以JSON格式返回响应,xml,asp.net-mvc,json,rest,asp.net-web-api,Xml,Asp.net Mvc,Json,Rest,Asp.net Web Api,我在最新的项目中使用了MVC4RESTAPI。但我遇到了一个我无法解决的问题 我的请求支持JSON和XML格式,从请求中获得响应没有问题 在测试过程中,我发现了一个问题,即在使用该API时,即使我以JSON格式发送请求,响应也始终是XML格式 但如果我使用Fiddler,它工作得很好,即JSON请求给出JSON响应,XML请求给出XML响应 Request headers User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/5

我在最新的项目中使用了MVC4RESTAPI。但我遇到了一个我无法解决的问题

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

在测试过程中,我发现了一个问题,即在使用该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的一种格式来解决这个问题。但我必须支持这两种格式

有办法吗

感谢

请求的内容类型标头并不指示服务器的响应类型,它用于确定请求类型

Web API用于确定响应的媒体类型,特别是Accept标头。为了确保XML响应,您需要将Accept头设置为

Accept: application/xml;
请求的Content-Type头并不指定来自服务器的响应类型,而是用于确定请求类型

Web API用于确定响应的媒体类型,特别是Accept标头。为了确保XML响应,您需要将Accept头设置为

Accept: application/xml;

是的,我读过,但理想情况下我想用JSON响应响应JSON请求,用XML响应响应XML请求。我不想强制对JSOn请求做出XML响应。有可能吗?@hellrokr响应类型可以由请求的其他因素确定,即,如果省略Accept标头并提供XML正文,它应该使用与JSON相同的XML进行响应。接受此作为答案,但这不起作用。我必须使用Accept:application/xml。添加/,再次返回JSON格式的响应。您可以在浏览器中试用。@hellrokr*/*必须优先考虑,如果是这样的话,尽管我认为这是顺序决定的。不管怎样,这是一个例子,答案更多的是关于使用Accept头的,我已经更新了答案。是的,我读到了,但理想情况下,我希望用JSON响应响应JSON请求,用XML响应响应XML请求。我不想强制对JSOn请求做出XML响应。有可能吗?@hellrokr响应类型可以由请求的其他因素确定,即,如果省略Accept标头并提供XML正文,它应该使用与JSON相同的XML进行响应。接受此作为答案,但这不起作用。我必须使用Accept:application/xml。添加/,再次返回JSON格式的响应。您可以在浏览器中试用。@hellrokr*/*必须优先考虑,如果是这样的话,尽管我认为这是顺序决定的。不管怎样,这只是一个例子,答案更多的是关于使用Accept头,我已经更新了答案。