REST – 使用JSON的HTTP Post Multipart

我需要接收一个只包含2个参数的HTTP Post Multipart:

  • 一个JSONstring
  • 二进制文件

哪个是设置正文的正确方法? 我要使用Chrome REST控制台testingHTTP调用,所以我想知道是否正确的解决scheme是为JSON参数和二进制文件设置“标签”键。

在服务器端,我使用了Resteasy 2.x,我将阅读这样的Multipart主体:

@POST @Consumes("multipart/form-data") public String postWithPhoto(MultipartFormDataInput multiPart) { Map <String, List<InputPart>> params = multiPart.getFormDataMap(); String myJson = params.get("myJsonName").get(0).getBodyAsString(); InputPart imagePart = params.get("photo").get(0); //do whatever I need to do with my json and my photo } 

这是要走的路吗? 检索我的JSONstring是否正确使用“myJsonName”键来标识特定的内容处置? 有没有其他方法可以在一个HTTP多方请求中接收这两个内容?

提前致谢

如果我正确地理解了您,您想要从HTTP / REST控制台手动组合多部分请求。 多部分格式很简单, 可以在HTML 4.01规范中find简要的介绍。 你需要想出一个边界,这是一个没有在内容中find的string,让我们说HereGoes 。 您设置请求标头Content-Type: multipart/form-data; boundary=HereGoes Content-Type: multipart/form-data; boundary=HereGoes 。 那么这应该是一个有效的请求体:

 --HereGoes Content-Disposition: form-data; name="myJsonString" Content-Type: application/json {"foo": "bar"} --HereGoes Content-Disposition: form-data; name="photo" Content-Type: image/jpeg Content-Transfer-Encoding: base64 <...JPEG content in base64...> --HereGoes--