【问题标题】:Use REST client to call multipart/form-data Rest web service使用 REST 客户端调用 multipart/form-data Rest web 服务
【发布时间】:2011-04-19 22:19:56
【问题描述】:

我有一个基于 RESTeasy 的 REST Web 服务(见下文)。我正在尝试使用 google REST 客户端执行请求以测试我的服务,但我不确定应该如何设置请求。

我不确定如何将 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;
    }   
}

【问题讨论】:

    标签: rest jax-rs resteasy


    【解决方案1】:

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

    Accept-Encoding:multipart/form-data
    

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

    Content-Type: image/png
    

    你可以用Postman REST client测试一下

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-19
      • 2015-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-19
      相关资源
      最近更新 更多