package org.jboss.resteasy.test.providers.multipart.resource; import org.jboss.resteasy.logging.Logger; import org.jboss.resteasy.plugins.providers.multipart.InputPart; import org.jboss.resteasy.plugins.providers.multipart.MultipartInput; import javax.ws.rs.Consumes; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import java.io.IOException; import java.util.List; @Path("") public class InputPartDefaultCharsetOverwriteService { private static Logger logger = Logger.getLogger(InputPartDefaultCharsetOverwriteService.class); @POST @Path("test") @Consumes(MediaType.MULTIPART_FORM_DATA) @Produces(MediaType.TEXT_PLAIN) public Response testDefaultContentType(MultipartInput input) throws IOException { List<InputPart> parts = input.getParts(); InputPart part = parts.get(0); String s1 = part.getBody(String.class, null); String s2 = part.getBodyAsString(); String result = part.getMediaType() + ":" + s1 + ":" + s2; logger.info("server response: " + result); return Response.ok(result, part.getMediaType()).build(); } @POST @Path("query") @Consumes(MediaType.MULTIPART_FORM_DATA) @Produces(MediaType.TEXT_PLAIN) public Response testInputPartSetMediaType(@QueryParam("contentType") String mediaType, MultipartInput input) throws IOException { List<InputPart> parts = input.getParts(); InputPart part = parts.get(0); part.setMediaType(MediaType.valueOf(mediaType)); String s1 = part.getBody(String.class, null); String s2 = part.getBodyAsString(); String result = part.getMediaType() + ":" + s1 + ":" + s2; logger.info("server response: " + result); return Response.ok(result, part.getMediaType()).build(); } @POST @Path("bytes") @Consumes(MediaType.WILDCARD) @Produces(MediaType.APPLICATION_OCTET_STREAM) public Response testByteArray(MultipartInput input) throws IOException { List<InputPart> parts = input.getParts(); InputPart part = parts.get(0); byte[] b = part.getBody(byte[].class, null); return Response.ok(b).build(); } }