【发布时间】:2015-03-23 18:08:43
【问题描述】:
我想与一个 HTTP 端点通信,对于它的多部分响应,我希望第 1 部分(或引用内容处置文件名)为 JSON,第 2 部分为 XML,这样做的正确方法是什么?
我可以同时包含 JSON 和 XML,但仅此一项并不能表达我想要为每个部分使用不同格式的意图。
编辑: 假设我有一项服务,现在它正在返回以下内容:
Content-Type: multipart/mixed; boundary=--37adc569155a4943b203e28a422cb96f
Content-Length: ...
----37adc569155a4943b203e28a422cb96f
Content-Type: application/xml; charset=utf-8
Content-Disposition: result
<Result>
...
</Result>
----37adc569155a4943b203e28a422cb96f
Content-Type: application/json; charset=utf-8
Content-Disposition: state
{ "Score": 42, ... }
----37adc569155a4943b203e28a422cb96f--
我可以并且希望支持以不同格式传回数据,例如,使用协议缓冲区将state 发送回或使用 JSON 发送result。
我认为正确的方法是通过 HTTP Accept 标头,但是我如何与我想要 JSON 中的 state 和协议缓冲区中的 result 的服务进行通信?如果Accept 标头不是要走的路,我应该改用什么?
【问题讨论】:
-
您的意思是从您的服务器返回一个 MIME 多部分容器,并在端点解析它吗?你控制两端?
-
是的,我控制两端,但我的客户不一定是唯一会使用该服务的人,我想为调用者提供选择数据返回格式的灵活性在。我已经用一个例子更新了这个问题。
-
你考虑过
User-Agent吗?它旨在定义客户的能力,这正是您在这里寻找的。span>
标签: http http-headers