微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

OData 连接服务如何处理类型

如何解决OData 连接服务如何处理类型

也许我遗漏了一些东西,但我不断收到对象反序列化的异常。我认为这是因为 @odata.context@odata.type

不同

例如,如果我执行 GET ~/MediaFiles 这是响应:

{
  "@odata.context": "https://MyServer/odata/v1/$Metadata#MediaFiles/ServerNamespace.Media.MediaFile","value": [
    {
      "@odata.type": "#ServerNamespace.Media.MediaFile",....
    }
  ]
}

但是如果我查看元数据:

<EntitySet Name="MediaFiles" EntityType="ServerNamespace.Media.FileItemInfo"/>

错误发生在 DataServiceQuery.Take(10) 上,给出异常

InvalidOperationException: 
The response payload is a not a valid response payload. Please make sure that the top level element is a valid Atom or JSON element or belongs to 'http://docs.oasis-open.org/odata/ns/data' namespace.

是的,我检查了正文是否是有效的 JSON 以及标题是否正确。

如您所见,MetaData 描述了 FileItemInfo 的类型,而响应 JSON 的类型为 MediaFile

在有人问之前,不,我无法更改或调试服务器代码,因为这是第三方。

在这种情况下,我使用 OData 连接服务生成客户端代码

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。