邮递员用jersey 2.0上传400错误的多部分/表单数据图像上传请求 [英] Postman throwing 400 Bad request for multipart/form-data image upload with jersey 2.0
问题描述
URL: http://localhost:8080/RESTfulExample/rest/file/upload 方法:开机自检
URL: http://localhost:8080/RESTfulExample/rest/file/upload METHOD : POST
响应:
相同的代码正在使用html表单,但是在邮递员中它抛出了400错误请求,我在google上查找了解决方案,发现边界丢失了,如何解决呢?因为我必须通过Jquery和rest客户端从多个客户端(如移动应用程序和Web客户端)接收文件.
The same code is working with html forms but in postman it's throwing 400 BAD REQUEST, I looked up on google for solution and found that boundary is missing, How to resolve it ? As I have to recieve files from multiple clients like mobile application and web clients via Jquery and rest client.
@Path("/file")
public class UploadFileService {
@POST
@Path("/upload")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadFile(@FormDataParam("file") InputStream uploadedInputStream,
@FormDataParam("file") FormDataContentDisposition fileDetail) {
try {
String uploadedFileLocation = "/home/nash/" + fileDetail.getFileName();
// save it
writeToFile(uploadedInputStream, uploadedFileLocation);
String output = "File uploaded to : " + uploadedFileLocation;
System.out.println("File uploaded..........");
return Response.status(200).entity(output).build();
} catch (Exception e) {
e.printStackTrace();
System.out.println("Exception " + e);
return null;
}
}
// save uploaded file to new location
private void writeToFile(InputStream uploadedInputStream, String uploadedFileLocation) {
try {
OutputStream out = new FileOutputStream(new File(uploadedFileLocation));
int read = 0;
byte[] bytes = new byte[1024];
out = new FileOutputStream(new File(uploadedFileLocation));
while ((read = uploadedInputStream.read(bytes)) != -1) {
out.write(bytes, 0, read);
}
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
推荐答案
请按照以下步骤操作:
-
添加 jersey-multipart 依赖项.
在您的应用程序类中(或在 web.xml
中)启用 MultipartFeature.class
.
In Your Application Class (or in web.xml
) enable MultipartFeature.class
.
请勿在邮递员请求中添加Content-Type标头.
DO NOT Add Content-Type header in your postman request.
对我来说,上述步骤有效.让我知道这是否对您有帮助.
For me the above steps worked. Do let me know if that helped you or not.
这篇关于邮递员用jersey 2.0上传400错误的多部分/表单数据图像上传请求的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!