小编典典

将文件和相关数据以 JSON 形式发布到 RESTful WebService

all

这可能是一个愚蠢的问题,但我有一个这样的夜晚。在我正在开发 RESTful API 的应用程序中,我们希望客户端以 JSON
格式发送数据。此应用程序的一部分要求客户端上传文件(通常是图像)以及有关图像的信息。

我很难追踪这在单个请求中是如何发生的。是否可以将文件数据 Base64 转换为 JSON 字符串?我需要向服务器执行 2 个帖子吗?我不应该为此使用
JSON 吗?

附带说明一下,我们在后端使用 Grails,并且这些服务可以由本地移动客户端(iPhone、Android 等)访问,如果有任何影响的话。


阅读 97

收藏
2022-03-01

共1个答案

小编典典

你基本上有三个选择:

  1. Base64 对文件进行编码,代价是增加了大约 33% 的数据大小,并增加了服务器和客户端用于编码/解码的处理开销。
  2. 首先在multipart/form-dataPOST 中发送文件,然后将 ID 返回给客户端。然后客户端发送带有 ID 的元数据,服务器重新关联文件和元数据。
  3. 先发送元数据,然后返回一个 ID 给客户端。然后客户端发送带有 ID 的文件,服务器重新关联文件和元数据。
2022-03-01