感谢先进的任何帮助人员。
我有一个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
我已经更新了所有的NuGet包,但似乎总是忽略请求,而是每次都得到JSON。
再次感谢任何想法。最诚挚的问候......
答案 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”);