2011-04-19 139 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