rest - 使用REST客户端调用multipart/form-data Rest web service

标签 rest jax-rs resteasy

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

我不知道如何发送 byte[]作为参数( 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;
    }   
}

最佳答案

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

Accept-Encoding:multipart/form-data

通常你使用这样的内容类型:
Content-Type: image/png

你可以用 Postman REST client 测试它

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

postman multipart/form-data

关于rest - 使用REST客户端调用multipart/form-data Rest web service,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5723429/

相关文章:

java - 使用矩阵参数执行 Get 请求?

java - Jax-RS 从 byte[] 生成图像

java - JAXB:注释对象列表元素标签名称的简单方法

java - 如何制作 RESTEasy 响应过滤器?

java - 使用 Jackson 进行 json 序列化期间出现 JsonMappingError

rest - 在 Restful API 中创建多对多关系的 "right"方法是什么

rest - 当不支持 HTTP 方法时向客户端发送消息

java - 如何从 ear/war/jar 中读取文件?

servlets - 轻松休息和初始化参数 - 如何访问?

database - 如何使用 put 方法从表单更新数据库