请问 spring boot 如何在 response 中同时返回一个 object 和 binary data

2019-09-16 14:55:33 +08:00
 Youfei
菜鸟遇到了些困难,最近要要完成一个需求要求在一次响应中返回 object 和 binary data.
目前想到 binary data 用 base64 存在 json 中,client 端是 python,拿到数据再解析
不知道还有没有别的更好的方法,谢谢大家
7335 次点击
所在节点    Java
38 条回复
Youfei
2019-09-17 10:26:49 +08:00
@armyHcz 谁,leo ?
toxicant
2019-09-17 10:39:57 +08:00
@armyHcz Summer 吗? 我也是以为是他才进来的
18258226728
2019-09-17 11:00:39 +08:00
感觉这个像是下载文件,然后有错误的时候不下载提示
psyche
2019-09-17 11:07:17 +08:00
可以把 JSON 也转换成二进制, 和你的 bin 合并成一个流 (比如用特殊符号分隔什么的), 然后 stream.
Youfei
2019-09-17 11:10:21 +08:00
@psyche 感觉好像只有这种可行了。但是我是看到有别的方法,但是不知道实现,https://developer.amazon.com/zh/docs/alexa-voice-service/structure-http2-request.html#examples
armyHcz
2019-09-17 11:28:37 +08:00
@toxicant 是的
armyHcz
2019-09-17 11:28:52 +08:00
@Youfei Summer
cnbattle
2019-09-17 12:18:56 +08:00
二进制 base64 当普通文本返回 可否
cnbattle
2019-09-17 12:20:29 +08:00
@cnbattle 请无视我的内容…
freestyle
2019-09-17 12:32:05 +08:00
奇怪的需求用奇怪的方式,binary 不大的话 base64 后放 response header 里,客户端也能正常取到的.
hantsy
2019-09-17 12:53:11 +08:00
@Youfei Multiapart 在 Request Body 还是很常见。 几乎所有的 java web framework 都有 Multipart 处理。你这个 Amazon Link 也是 Request Body。

你想要的 Response Body 里面使用 Multipart 我是没有见过,不知 Http 是否支持,没看相关 Spec。
hantsy
2019-09-17 12:58:18 +08:00
可以尝试用最原始的 ResponseWriter 直接写 Multipart 进 Response。
hantsy
2019-09-17 12:59:39 +08:00
可行与否,我不知道,从来没遇到这种需求。https://stackoverflow.com/questions/47067312/multipart-http-response
Youfei
2019-09-17 13:00:32 +08:00
@hantsy 你仔细看,amazon 确实是有 multipart/related response 哦
Youfei
2019-09-17 13:02:32 +08:00
@hantsy 多谢,我看一下
Takamine
2019-09-17 19:42:43 +08:00
ResponseEntity 看看行不行。
zzl22100048
2019-09-17 20:34:35 +08:00
json 不大的话放 response headers 都行吧,response body 传流
livnimasileid
2019-09-18 10:41:54 +08:00
不是很清楚哦

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/601176

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX