4

我正在现有应用程序之上创建一个 REST API。其中一项功能接受 json 数据以及用户上传的文件。

我不确定如何在同一个请求中向 REST API 发送文件和 json 数据?

我有 json 部分工作,我使用 curl 进行测试:

curl -XPOST http://localhost:8080/myapp/foo -d '{"mydata": {
    "name": "somename",
    "gender": "male"
}}'
//I would like to send an image (say, profile image) with the above request as well.

我正在使用 grails 应用程序,所以我在我的控制器中获取这些数据,如下所示new Foo(params.mydata)

问题

  • 是否可以在同一个请求中向 API 发送 JSON 数据和文件?如果是这样,我该如何使用 curl 或 REST 控制台(chrome 扩展)
  • contentType这个请求会是什么?
  • 如果这意味着我可以在同一个请求中发送文件和其他数据(字符串),我愿意以其他格式发送数据。我不依赖 JSON

更新

我发现了另一个问同样问题的SO question 。该问题的答案看来,似乎只有三个选择,并且没有一个说可以在同一个请求中同时发送 json 数据和文件。这非常令人沮丧......我将保持这个问题开放,看看是否有人有其他想法。

4

1 回答 1

2

我认为做到这一点的“正确”方法是使用多部分消息。这样,您可以同时发布 JSON 和 Image 以及它们对应的正确 MIME 类型。关于多部分 mime 类型的wikipedia 文章有一个示例说明这会是什么样子。看起来 Apache httpcommons 和 Jersey 都支持这种东西,显然curl 也支持!

于 2013-05-14T19:02:28.163 回答