2.7.11.2.4. 带有 多部分/相关输出
RESTEasy 提供了一个简单的 API,用于输出 多部分/相关
。
package org.jboss.resteasy.plugins.providers.multipart; public class MultipartRelatedOutput extends MultipartOutput { public OutputPart getRootPart() public OutputPart addPart(Object entity, MediaType mediaType, String contentId, String contentTransferEncoding) public String getStartInfo() public void setStartInfo(String startInfo) }
要输出 multipart/ 相关
,您必须创建一个 MultipartRelatedOutput
对象并调用 addPart()
方法。添加的第一个部分用作 多部分/相关消息的根部分
,RESTEasy 会自动查找 MessageBodyWriter
来托管您的实体对象。与 MultipartInput
类似,有时您可能会有对通用类型的元数据敏感的托管。在这种情况下,使用 GenericType
。通常,传递对象及其 MediaType
应该足够。
示例:返回 多部分/相关
格式以发送两个镜像
@Path("/related") public class MyService { @GET @Produces("multipart/related") public MultipartRelatedOutput get() { MultipartRelatedOutput output = new MultipartRelatedOutput(); output.setStartInfo("text/html"); Map<String, String> mediaTypeParameters = new LinkedHashMap<String, String>(); mediaTypeParameters.put("charset", "UTF-8"); mediaTypeParameters.put("type", "text/html"); output.addPart( "<html><body>\n" + "This is me: <img src='cid:http://example.org/me.png' />\n" + "<br />This is you: <img src='cid:http://example.org/you.png' />\n" + "</body></html>", new MediaType("text", "html", mediaTypeParameters), "<mymessage.xml@example.org>", "8bit"); output.addPart("// binary octets for me png", new MediaType("image", "png"), "<http://example.org/me.png>", "binary"); output.addPart("// binary octets for you png", new MediaType( "image", "png"), "<http://example.org/you.png>", "binary"); client.putRelated(output); return output; } }
注意
上例假定 客户
类标有 Jakarta XML Binding。