ODataLib for OData V4 是不是支持请求中的 Atom 有效负载?
Posted
技术标签:
【中文标题】ODataLib for OData V4 是不是支持请求中的 Atom 有效负载?【英文标题】:Does ODataLib for OData V4 support Atom payload in requests?ODataLib for OData V4 是否支持请求中的 Atom 有效负载? 【发布时间】:2014-10-30 20:39:44 【问题描述】:我正在尝试使用 ODataLib for OData 协议 V4 (Microsoft.OData.Core) 来生成 Atom 格式的有效负载。我确保 Content-Type 和 Accept 标头引用 application/atom+xml,但是对 CreateODataEntryWriter 的调用总是会导致异常:
Microsoft.OData.Core.ODataContentTypeException:支持的 MIME 类型 找不到与可接受的 MIME 类型匹配的 要求。支持的类型 '应用程序/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=false, 应用程序/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=true, 应用程序/json;odata.metadata=minimal;odata.streaming=true, 应用程序/json;odata.metadata=minimal;odata.streaming=false;IEEE754Compatible=false, 应用程序/json;odata.metadata=minimal;odata.streaming=false;IEEE754Compatible=true, 应用程序/json;odata.metadata=minimal;odata.streaming=false, 应用程序/json;odata.metadata=minimal;IEEE754Compatible=false, 应用程序/json;odata.metadata=minimal;IEEE754Compatible=true, 应用程序/json;odata.metadata=最小, 应用程序/json;odata.metadata=full;odata.streaming=true;IEEE754Compatible=false, 应用程序/json;odata.metadata=full;odata.streaming=true;IEEE754Compatible=true, 应用程序/json;odata.metadata=full;odata.streaming=true, 应用程序/json;odata.metadata=full;odata.streaming=false;IEEE754Compatible=false, 应用程序/json;odata.metadata=full;odata.streaming=false;IEEE754Compatib...' 不匹配任何可接受的 MIME 类型“application/atom+xml”。
这是导致异常的示例代码:
var writerSettings = new ODataMessageWriterSettings();
writerSettings.SetContentType(ODataFormat.Atom);
var messageWriter = new ODataMessageWriter(request, writerSettings, model);
var entryWriter = messageWriter.CreateODataEntryWriter();
我检查了库代码,发现 ODataMessageWriterSettings 有一个属性 EnableAtom 但是这个属性被声明为内部的,而且它似乎不是从库内部设置的,所以它看起来总是假的。我知道 Atom 格式在 OData V4 中已过时,是否支持生成条目有效负载?
【问题讨论】:
【参考方案1】:自 DataLib 6.3.0 版本以来,ATOM 已禁用,请参阅 release note。 实际上,您可以使用 ODataLib pre-6.3 版本来生成 ATOM 有效负载,但 V4 中的新功能可能无法得到很好的支持。
【讨论】:
谢谢,这就解释了。以上是关于ODataLib for OData V4 是不是支持请求中的 Atom 有效负载?的主要内容,如果未能解决你的问题,请参考以下文章
Angular 2 Kendo 网格不支持 odata v4
Olingo Odata v4 - 从模型生成类型、集合和元数据