我正在使用@MultipartForm通过webservice上传文件..
@POST
@Path("/upload")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response upload(@NotNull @MultipartForm MyPOJO pojo) {code here}
=== POJO
MyPOJO{
@FormParam("id")
private String id;
@FormParam("file")
@PartType("application/octet-stream")
private byte[] fileData;
}
为了模仿这个我尝试使用
ResteasyClient client = new ResteasyClientBuilder().build();
String url = TestPortProvider.generateURL("myurl");
ResteasyWebTarget target = client.target(url);
MultipartFormDataOutput multipartFormDataOutput = new MultipartFormDataOutput();
multipartFormDataOutput.addFormData("file", new FileInputStream(IMAGE_FILE), MediaType.APPLICATION_OCTET_STREAM_TYPE);
GenericEntity<MultipartFormDataOutput> entity = new GenericEntity<MultipartFormDataOutput>(multipartFormDataOutput){};
Response r = target.request().post( Entity.entity(entity, MediaType.MULTIPART_FORM_DATA_TYPE));
我遇到的问题是我有除文件以外的其他表单字段(id)。我的问题是如何访问这些并在测试时传递给URL。感谢你的帮助。
答案 0 :(得分:0)
找到答案。它就像使用像
这样的addFormData调用其他表单元素一样简单multipartFormDataOutput.addFormData("id","value of id", MediaType.TEXT_PLAIN_TYPE);