2011-04-19 75 views
10

我有一个基于RESTeasy的REST Web服务(请参见下文)。我试图使用谷歌REST客户端来执行请求来测试我的服务,但我不确定如何设置请求。使用REST客户端调用multipart/form-data其他Web服务

我不确定如何发送byte[]作为参数(filedata)。
关于如何测试这个的任何想法?

我得到以下异常:

产生java.io.IOException:无法获取边界的多

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; 
    } 
} 

回答

11

您需要将此头添加到您的要求:

Accept-Encoding:multipart/form-data 

通常使用的内容类型是这样的:

Content-Type: image/png 

你可以用Postman REST client

测试

我附上了关于如何填写表格的图片。

postman multipart/form-data

+0

谢谢老兄:) – vacetahanna 2014-04-25 20:11:28