高级休息客户端 - 使用XML而不是JSON

时间:2015-07-28 06:20:51

标签: c# asp.net json xml rest

我正在点击以下控制器并在return result;上有一个断点:

        [HttpGet]
        [ResponseType(typeof(PriceResponse))]
        [Route("Account/{id:int}/Price")]
        public IHttpActionResult Get(int id)
        {          
            var price = _priceService.GetPrice(id);
            var result = Ok(price);

            return result;
        }

我手动将result.Formatters[0].SupportedMediaTypes[0].MediaTyperesult.Formatters[0].MediaTypeMappings[0].MediaType.MediaType的值从"application/json"更改为"application/xml"。 但是,当我在Chrome的Advanced Rest Client中查看结果时,它会在标题中正确显示Content-Type: application/xml; charset=utf-8,但“原始”响应正文仍为JSON格式。 如何以XML格式显示它?

编辑:我在请求的标题中有以下内容:

Svc-Channel: 302
Accept: application/xml

我尝试点击“选项”并将下拉菜单设置为“application / xml”,但正文仍以JSON格式显示。

1 个答案:

答案 0 :(得分:1)

我将假设(基于属性)您正在使用Web API。

您在这里玩的内容称为内容协商。 Web API有一个很好的默认实现,记录在here。控制它的最简单方法是使用"接受"标题并传递所需的返回类型。 Web Api自然会通过它的管道来处理所有这些。你需要做的就是使用"接受"请求中的标题。