我有一个基于RESTeasy的REST Web服务(见下文).我正在尝试使用谷歌REST客户端来执行测试我的服务的请求,但我不确定应该如何设置请求.
我不知道如何将byte []作为param(filedata)发送.
关于如何测试这个的任何想法?
我得到以下异常:
java.io.IOException: Unable to get boundary for multipart
同
- request:
- -content-type=multipart/form-data
- -form params:
- test=testvalue
休息方法:
- @POST
- @Path("/upload")
- @Consumes("multipart/form-data")
- public Response create(@MultipartForm FileUploadForm form) {
- System.out.println("form=" + form.getTest());
- return null;
- }
FileUploadForm Pojo:
- import javax.ws.rs.FormParam;
- import org.jboss.resteasy.annotations.providers.multipart.PartType;
- public class FileUploadForm {
- private byte[] filedata;
- private String test;
- public FileUploadForm() {}
- public byte[] getFileData() {
- return filedata;
- }
- @FormParam("filedata")
- @PartType("application/octet-stream")
- public void setFileData(final byte[] filedata) {
- this.filedata = filedata;
- }
- public String getTest() {
- return test;
- }
- @FormParam("test")
- @PartType("application/json")
- public void setTest(String test) {
- this.test = test;
- }
- }
解决方法
您需要将此标头添加到您的请求中:
- Accept-Encoding:multipart/form-data
通常你使用这样的内容类型:
- Content-Type: image/png
您可以使用Postman REST client进行测试
我附上了一张关于如何填写表格的图片.