为了账号安全,请及时绑定邮箱和手机立即绑定

REST-使用JSON的HTTP发布多部分

REST-使用JSON的HTTP发布多部分

繁华开满天机 2019-11-07 13:10:29
我需要接收仅包含2个参数的HTTP Post Multipart:JSON字符串二进制文件设置身体的正确方法是哪一种?我将使用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个内容吗?提前致谢
查看完整描述

1 回答

?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

如果我对您的理解正确,那么您想从HTTP / REST控制台手动编写一个多部分请求。分段格式很简单;简短的介绍可以在HTML 4.01规范中找到。您需要提出一个边界,即在内容中找不到的字符串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--


查看完整回答
反对 回复 2019-11-07
  • 1 回答
  • 0 关注
  • 218 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信