使用 REST 客户端调用 multipart/form-data Rest Web 服务
我有一个基于 RESTeasy 的 REST Web 服务(见下文)。我正在尝试使用 google REST 客户端执行请求来测试我的服务,但我不确定应该如何设置该请求。
我不确定如何将 byte[]
作为参数 (filedata
) 发送。
关于如何测试这个有什么想法吗?
我得到以下异常:
java.io.IOException:无法获取多部分的边界
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;
}
}
I have a RESTeasy-based REST web service (see below). I'm trying to use the google REST client to execute a request to test my service, but I'm unsure as to how the request should be setup.
I'm not sure how to send the byte[]
as a param (filedata
).
Any ideas on how to test this?
I get the following exception:
java.io.IOException: Unable to get boundary for multipart
with
request:
-content-type=multipart/form-data
-form params:
test=testvalue
Rest method:
@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;
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要将此标头添加到您的请求中:
通常您使用这样的内容类型:
您可以使用 Postman REST 客户端
我已附上一张有关如何填写表单的图像。
You need to add this header to your request:
usually you use Content type like this:
You can test it with Postman REST client
I've attached an image on how the form should be filled out.