java json发送文件_关于java:REST API设计在同一请求中将JSON数据和文件发送到api...

我正在现有应用程序之上创建一个RESTAPI。其中一个特性接受JSON数据以及用户上传的文件。

我不确定如何将同一请求中的文件和JSON数据发送到RESTAPI?

我让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上

更新

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

我认为这样做的"正确"方法是使用多部分消息。这样,您就可以使用相应的正确mime类型发布JSON和图像。维基百科关于多部分mime类型的文章提供了一个例子,说明了这一点。看起来ApacheHTTPCommons和Jersey都支持这种方式,显然curl也支持这种方式!

我很困惑。你的回答令人鼓舞,但我发现了另一个与我的问题相同的问题,似乎只有三种选择。没有人说JSON数据和文件可以在同一个请求中发送:stackoverflow.com/questions/4083702/…

我正要建议在您发布的链接中选项3的数量-发送元数据,服务器用一个URI响应,将图像发布到,将图像发送到该URI。然而,multipart/mixed mime类型允许您在同一条消息中有多个内容类型,由您定义的任何"边界"分隔。这将使整体内容类型为multipart/mixed,接下来的两个块是application/json,然后是image/jpeg。

好的,让我用两个块来尝试application/json和image/jpeg的multipart/mixed内容类型。等等,第二个街区image/jpeg怎么办?文件会上传吗?只是想知道如何使用REST控制台chrome插件将此请求作为测试发送:)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值