【问题标题】:How to create Multipart Response如何创建多部分响应
【发布时间】:2017-12-17 09:02:14
【问题描述】:

我正在开发宁静的网络服务,我想生成以下格式的多部分响应:

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 框架进行实现。没有得到标题。

【问题讨论】:

  • 到目前为止你尝试过什么代码?
  • MimeMultipart multipart = new MimeMultipart(); /*将文件添加到多部分*/ return Response.ok(multipart, "multipart/form-data").build();
  • @jsalonen 你有什么想法吗?或者我可以使用 HttpClient 等其他库来实现吗?
  • 如何添加这些文件?如果它不是所需的格式,它会产生什么样的格式?
  • @jsalonen 我已经更新了这个问题。如何测试我的输入?

标签: java spring httpclient multipartform-data jersey-2.0


【解决方案1】:

这就是我在 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();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-01
    • 2018-08-26
    • 1970-01-01
    • 2018-04-14
    相关资源
    最近更新 更多