当前位置: 首页 > 知识库问答 >
问题:

我应该如何为多部分响应指定HTTP accept头?

何灼光
2023-03-14

我希望与HTTPendpoint通信,对于它的多部分响应,我希望第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--

我可以并且希望支持以不同的格式将数据传回,例如,使用协议缓冲区将状态传回,或者使用JSON将结果传回。

我认为正确的方法是通过HTTPaccept头,但是如何与我想要JSON中的state和协议缓冲区中的result的服务通信呢?如果accept标头不适合使用,那么应该使用什么呢?

共有1个答案

庄弘业
2023-03-14

我认为您要做的事情不是由任何RFC定义的,并要求使用自定义头字段。我会添加像这样的标题

X-Foo-Accept-State: application/json; charset=utf-8
X-Foo-Accept-Result: application/xml; charset=utf-8

(其中“foo”是您的公司名称。有关命名自定义标头字段的最佳方法,请参见其他地方。)

 类似资料:
  • 我试图编写完整的多部分流,从客户端使用Spring restTemplate发送多部分请求,从服务器端自动将不同部分解析为对象(我使用JAXB进行对象封送),并以多部分形式返回响应。 我能够实现几乎所有的流,但是我不能从spring Controller中用jaxb对象发送多部分响应。 试图使he FormHttpMessageConverter正确地编写部分,但这没有帮助 是否有任何方法使Spr

  • 我知道JVM使用属性在运行时定位本机库。我试图用本机依赖项位置配置Eclipse。 但是在中有许多地方我可以指定位置。 源选项卡->本机库位置 null null 如果它们都指向同一个目的地,为什么会有这么多配置项? 到目前为止,我的猜测是,Eclipse的设计者希望这种方式能够帮助程序员更有逻辑地组织他们的本机库。

  • 我有大约40个API,它们具有类似的基本响应结构,如下所示: 因此,我有一个基本响应类,采用T类型的泛型,如下所示: 因此,对于API A,它返回类型为的对象及其自己的字段,我将返回响应作为控制器中的API响应: 在控制器中:响应数据=新响应();ResponseEntity response=新的ResponseEntity 在swagger中有没有一种方法可以递归地指定响应对象的模型?例如,我

  • 通常,我需要通过JSOUP将数据以响应multipart/form-data的形式发送到站点 作为一个示例,使用一个简单的窗体来sgeniriruet您的查询。 <表单操作=«localhost:8000»方法=«post»enctype=»多部分/表单数据» <输入类型=»文本»名称=»文本»值=»文本默认值» <输入类型=»文件»名称=»文件1» <输入类型=»文件»名称=»文件2» 提交 通

  • 我看到很多关于JDBC/MySQL的“最佳实践”指南告诉我指定setFetchSize()。 但是,我不知道什么时候指定,以及指定什么(语句、结果集)。 < li >在这两个选项中,我应该指定什么? < li >在javadoc和oracle文档中,这是我对“何时”感到困惑的地方 Javadoc 默认值由创建结果集的语句对象设置。提取大小可以随时更改。 甲骨文文档 在生成结果集后,对语句对象的获取

  • 我正在开发的API是在spring Boot中开发的。现在我有了一个API,我必须在其中发送响应,其中包含一个二进制文件和XML。两者将被多部分边界分开。那么有没有办法做到这一点呢?