Web API 2 OData = $格式无法正常工作

时间:2014-09-30 20:58:58

标签: asp.net-web-api odata

感谢先进的任何帮助人员。

我有一个Web API OData项目,一切都很好。我现在尝试使用$ format参数返回xml而不是JSON,而不是指定标头请求,它不起作用。我尝试过这些方法:

http://localhost:3845/api/Customer?$format=application/xml
http://localhost:3845/api/Customer?$format=xml
http://localhost:3845/api/Customer?$format=application/xml;odata.metadata=full

一切都没有成功。本文说有可能:http://blogs.msdn.com/b/webdev/archive/2014/03/13/getting-started-with-asp-net-web-api-2-2-for-odata-v4-0.aspx

我已经更新了所有的Nu​​Get包,但似乎总是忽略请求,而是每次都得到JSON。

再次感谢任何想法。最诚挚的问候......

2 个答案:

答案 0 :(得分:6)

由于ATOM格式(XML)仅是技术委员会规范而不是OData V4协议的OASIS标准,因此在version 6.3.0的ODataLib中禁用ATOM格式。

要求OData V4服务以XML格式响应的正确方法如下:

GET http://localhost:3845/api/Customer?$format=application/atom+xml

或将标题Accept设置为application/atom+xml。但由于上面提到的原因,它不适用于Web API OData V4。

答案 1 :(得分:0)

要支持$ format = xml和$ format = json,请添加以下配置:

  

config.Formatters.JsonFormatter.AddQueryStringMapping(“ $ format”,   “ json”,“ application / json”);    config.Formatters.XmlFormatter.AddQueryStringMapping(“ $ format”,“ xml”,    “ application / xml”);