菜鸟遇到了些困难,最近要要完成一个需求要求在一次响应中返回 object 和 binary data.
目前想到 binary data 用 base64 存在 json 中,client 端是 python,拿到数据再解析
不知道还有没有别的更好的方法,谢谢大家
目前想到 binary data 用 base64 存在 json 中,client 端是 python,拿到数据再解析
不知道还有没有别的更好的方法,谢谢大家

1 guxingke Sep 16, 2019 via Android 可以说没有 这种情况下 必须客户端配合解析 |
2 oaix Sep 16, 2019 multipart |
3 Youfei OP @oaix 你提到的是 multipartbody 吗,这是是个封装后的类好像需要 java 重新反射生成相应的类才能获取各个文件。https://github.com/juazugas/spring-boot-multipart |
4 arrow8899 Sep 16, 2019 return {"data": object, "binary": []},binary data 序列化后其实就是一个数组; |
8 xfriday Sep 16, 2019 用 protobuf 可以传 byte[]; json/xml 等都是文本序列化 |
9 atx Sep 16, 2019 第一行输出 json 字符串,然后换行输出二进制数据 接收时 readline 第一行 json,后面当二进制处理就 ok 了, 跟下载文件没什么区别 |
10 xuanbg Sep 16, 2019 二进制数据为什么不通过另一个接口获取呢? |
14 LeeSeoung Sep 16, 2019 multipart/form-data 问题是 python 端的接收能自动解析出表单数据么。 |
15 springz Sep 16, 2019 一个字段放字节流,前端应该很容易转 binary,放 Hex 应该也可以 |
16 springz Sep 16, 2019 最好还是另一个接口获取 |
18 hantsy Sep 17, 2019 分开,文本用 Json,Bin 用 Stream |
20 armyHcz Sep 17, 2019 你这个头像让我眼前一亮,又看到你问的问题,发现根本不是本人. |
23 18258226728 Sep 17, 2019 感觉这个像是下载文件,然后有错误的时候不下载提示 |
24 psyche Sep 17, 2019 可以把 JSON 也转换成二进制, 和你的 bin 合并成一个流 (比如用特殊符号分隔什么的), 然后 stream. |
25 Youfei OP @psyche 感觉好像只有这种可行了。但是我是看到有别的方法,但是不知道实现,https://developer.amazon.com/zh/docs/alexa-voice-service/structure-http2-request.html#examples |
28 cnbattle Sep 17, 2019 via Android 二进制 base64 当普通文本返回 可否 |
30 freestyle Sep 17, 2019 via iPhone 奇怪的需求用奇怪的方式,binary 不大的话 base64 后放 response header 里,客户端也能正常取到的. |
31 hantsy Sep 17, 2019 @Youfei Multiapart 在 Request Body 还是很常见。 几乎所有的 java web framework 都有 Multipart 处理。你这个 Amazon Link 也是 Request Body。 你想要的 Response Body 里面使用 Multipart 我是没有见过,不知 Http 是否支持,没看相关 Spec。 |
32 hantsy Sep 17, 2019 可以尝试用最原始的 ResponseWriter 直接写 Multipart 进 Response。 |
33 hantsy Sep 17, 2019 可行与否,我不知道,从来没遇到这种需求。https://stackoverflow.com/questions/47067312/multipart-http-response |
36 Takamine Sep 17, 2019 via Android ResponseEntity 看看行不行。 |
37 zzl22100048 Sep 17, 2019 json 不大的话放 response headers 都行吧,response body 传流 |
38 livnimasileid Sep 18, 2019 不是很清楚哦 |