【发布时间】:2012-02-23 06:18:31
【问题描述】:
我需要接收一个仅包含 2 个参数的 HTTP Post Multipart:
- JSON 字符串
- 二进制文件
设置body的正确方法是什么? 我将使用 Chrome REST 控制台测试 HTTP 调用,所以我想知道是否正确的解决方案是为 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
}
这是要走的路吗? 使用标识特定内容处置的密钥“myJsonName”检索我的 JSON 字符串是否正确? 还有其他方法可以在一个 HTTP 多部分请求中接收这 2 个内容吗?
提前致谢
【问题讨论】:
-
这是什么类型的 REST 资源?两个部分在资源级别上有何关联?
-
实际上我们处理这个资源的方式并不完全是RESTful,因为图像是资源的一个“组件”而不是另一个资源。
标签: java json rest http resteasy