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

2019 年 9 月 16 日
 Youfei
菜鸟遇到了些困难,最近要要完成一个需求要求在一次响应中返回 object 和 binary data.
目前想到 binary data 用 base64 存在 json 中,client 端是 python,拿到数据再解析
不知道还有没有别的更好的方法,谢谢大家
8174 次点击
所在节点    Java
38 条回复
guxingke
2019 年 9 月 16 日
可以说没有 这种情况下 必须客户端配合解析
oaix
2019 年 9 月 16 日
multipart
Youfei
2019 年 9 月 16 日
@oaix 你提到的是 multipartbody 吗,这是是个封装后的类好像需要 java 重新反射生成相应的类才能获取各个文件。https://github.com/juazugas/spring-boot-multipart
arrow8899
2019 年 9 月 16 日
return {"data": object, "binary": []},binary data 序列化后其实就是一个数组;
Youfei
2019 年 9 月 16 日
@guxingke 没有现成的方法,只能简单粗暴一点吗?
3789
2019 年 9 月 16 日
@Youfei 你自己用的方法🈶什么问题吗?
Youfei
2019 年 9 月 16 日
@3789 还没写,想着会有更优雅的实现方式或者有现成的工具~
xfriday
2019 年 9 月 16 日
用 protobuf 可以传 byte[]; json/xml 等都是文本序列化
atx
2019 年 9 月 16 日
第一行输出 json 字符串,然后换行输出二进制数据
接收时 readline 第一行 json,后面当二进制处理就 ok 了,

跟下载文件没什么区别
xuanbg
2019 年 9 月 16 日
二进制数据为什么不通过另一个接口获取呢?
Youfei
2019 年 9 月 16 日
@xuanbg 就是这么个需求...
Youfei
2019 年 9 月 16 日
@xfriday 如果说,一部分是文本,而另一部分是二进制流式传输呢?
Youfei
2019 年 9 月 16 日
@lc1450 如果说,一部分是 json,而另一部分是二进制流式传输呢?
LeeSeoung
2019 年 9 月 16 日
multipart/form-data 问题是 python 端的接收能自动解析出表单数据么。
springz
2019 年 9 月 16 日
一个字段放字节流,前端应该很容易转 binary,放 Hex 应该也可以
springz
2019 年 9 月 16 日
最好还是另一个接口获取
xfriday
2019 年 9 月 16 日
@Youfei
message A {
bytes b = 1;
string c = 2;
int32 d = 3;
...
}
hantsy
2019 年 9 月 17 日
分开,文本用 Json,Bin 用 Stream
Youfei
2019 年 9 月 17 日
@hantsy 我就是在想如何在 body 中同时传输 json,bin stream,请问有实现方式吗?
armyHcz
2019 年 9 月 17 日
你这个头像让我眼前一亮,又看到你问的问题,发现根本不是本人.

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

https://v2ex.xtra.eu.org/t/601176

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

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

© 2021 V2EX