【发布时间】:2011-07-22 04:33:58
【问题描述】:
我正在尝试实现一个 odata 使用者,特别是现在与执行批处理操作和更改集相关,遵循 odata documentation 基本上加载到我用作基础的这个示例多部分批处理。
但是,当我实际运行使用我自己的实体路径等更新的批处理代码(例如通过提琴手请求生成器)时,我收到以下错误:
处理批处理请求时出错。在 每个操作的开始,正好两个 需要指定标头: “内容类型”和 “内容传输编码”。确保 这些标题存在并且具有 正确的值。
如果我从更改集中删除 Content-ID,则更改集可以正常工作,但显然后面的操作不再有效,因为它们引用了此 Content-ID。
我已尝试将 Content-ID 标头从更改请求的多部分.. 部分标头中移出,并移到实际的部分负载请求标头中,即:
--changeset(77162fcd-b8da-41ac-a9f8-9357efbbd621)
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-ID: 1
POST /service.svc/Customers HTTP/1.1
Host: host
Content-Type: application/atom+xml;type=entry
Content-Length: ###
<AtomPub representation of a new Customer>
变成
--changeset(77162fcd-b8da-41ac-a9f8-9357efbbd621)
Content-Type: application/http
Content-Transfer-Encoding: binary
POST /service.svc/Customers HTTP/1.1
Host: host
Content-Type: application/atom+xml;type=entry
Content-Length: ###
Content-ID: 1
再一次,这不再抱怨只有标题的更改集,但后来仍然引用内容 ID 失败
HTTP 404,未找到段“$1”的资源
引用此 content-id 的请求部分如下所示:
--changeset_7448d3fc-39f6-49bb-b822-30fa4a1676ce
Content-Type: application/http
Content-Transfer-Encoding: binary
POST http://example.org/test.svc/$1/$links/Resources HTTP/1.1
Content-Type: application/json
..json ..
假设http://example.org/test.svc 是服务根。
文档对内部请求位置的格式并不是很清楚,因此路径引用可能不正确。
希望有人更好地了解这方面并可以提出建议,提前谢谢。
斯蒂芬。
【问题讨论】:
标签: odata