如何创建多部分响应
How to create Multipart Response
我正在开发 restful Web 服务,我想在其中生成以下格式的多部分响应:
HTTP/1.1 200 OK
Server:
MIME version:
Content-type:Multipart/form-data
Content-length:500; boundary=
--Boundary--
content-type:
content-Disposition: ;name="abc"
[content]
--Boundary--
content-Disposition: ;name="cba"
[content]
--Boundary--
此响应将包含查询结果,不会包含任何 url。
我用过 MimeMultipart:
MimeMultipart multipart = new MimeMultipart();
// ...add files to multipart
MimeBodyPart firstPart = new MimeBodyPart();
imagePart.setContent(Object, MediaType.APPLICATION_OCTET_STREAM);
MimeBodyPart secondnPart = new MimeBodyPart();
jsonPart.setContent(Object, MediaType.APPLICATION_JSON);
multiPart.addBodyPart(firstPart);
multiPart.addBodyPart(secondPart);
return Response.ok(multipart, "multipart/form-data").build();
但这并不是以上述格式创建的。我正在使用 Spring 框架来实现。没有得到 header。
这就是我在 Jersey 2 中对 Multipart/form-data 响应所做的:
import org.glassfish.jersey.media.multipart.FormDataMultiPart;
FormDataMultiPart fdm=new FormDataMultiPart();
fdm.field("abc", Object o1, MediaType.APPLICATION_yourmediatype).field("cba",
Object o2, MediaType.APPLICATION_yourmediatype);
Response response=Response.ok(fdm, MediaType.MULTIPART_FORM_DATA).build();
我正在开发 restful Web 服务,我想在其中生成以下格式的多部分响应:
HTTP/1.1 200 OK
Server:
MIME version:
Content-type:Multipart/form-data
Content-length:500; boundary=
--Boundary--
content-type:
content-Disposition: ;name="abc"
[content]
--Boundary--
content-Disposition: ;name="cba"
[content]
--Boundary--
此响应将包含查询结果,不会包含任何 url。
我用过 MimeMultipart:
MimeMultipart multipart = new MimeMultipart();
// ...add files to multipart
MimeBodyPart firstPart = new MimeBodyPart();
imagePart.setContent(Object, MediaType.APPLICATION_OCTET_STREAM);
MimeBodyPart secondnPart = new MimeBodyPart();
jsonPart.setContent(Object, MediaType.APPLICATION_JSON);
multiPart.addBodyPart(firstPart);
multiPart.addBodyPart(secondPart);
return Response.ok(multipart, "multipart/form-data").build();
但这并不是以上述格式创建的。我正在使用 Spring 框架来实现。没有得到 header。
这就是我在 Jersey 2 中对 Multipart/form-data 响应所做的:
import org.glassfish.jersey.media.multipart.FormDataMultiPart;
FormDataMultiPart fdm=new FormDataMultiPart();
fdm.field("abc", Object o1, MediaType.APPLICATION_yourmediatype).field("cba",
Object o2, MediaType.APPLICATION_yourmediatype);
Response response=Response.ok(fdm, MediaType.MULTIPART_FORM_DATA).build();