Java Spring引导发送RequestBody和RequestParam
我正在编写api,我需要在一个请求中发送Json(作为对象)和图像文件。我是这样做的Java Spring引导发送RequestBody和RequestParam,java,spring,multipartform-data,Java,Spring,Multipartform Data,我正在编写api,我需要在一个请求中发送Json(作为对象)和图像文件。我是这样做的 @PostMapping("/upload") public String singleFileUpload(@RequestBody Item item, @RequestParam("file") MultipartFile file) { // logic } 下面是我如何用邮递员测试这个方法的 这是标题 这是我的物品对象 { "title": "useruser", "des
@PostMapping("/upload")
public String singleFileUpload(@RequestBody Item item, @RequestParam("file") MultipartFile file) {
// logic
}
下面是我如何用邮递员测试这个方法的
这是标题
这是我的物品对象
{
"title": "useruser",
"description": "Woodfsdfw",
"img": "www.gosdfsdfsdfsdfog.elt",
"lat": 45.48745,
"lng": 96.5651655,
"user": {
"name": "Jerry",
"img" : "sdfsdfdfsdf",
"email": "jrry@gmail.com"
}
}
这里是我从服务器得到的响应
{
"timestamp": 1520750026769,
"status": 415,
"error": "Unsupported Media Type",
"exception": "org.springframework.web.HttpMediaTypeNotSupportedException",
"message": "Content type 'multipart/form-data;boundary=----WebKitFormBoundaryYzp58riGtVnLl7mI;charset=UTF-8' not supported",
"path": "/api/upload"
}
我已经挣扎了4个小时了。知道怎么解决吗?
编辑
在我使用内容类型多部分/表单数据之后,我得到了这个错误
{
"timestamp": 1520750811814,
"status": 500,
"error": "Internal Server Error",
"exception": "org.springframework.web.multipart.MultipartException",
"message": "Could not parse multipart servlet request; nested exception is java.io.IOException: org.apache.tomcat.util.http.fileupload.FileUploadException: the request was rejected because no multipart boundary was found",
"path": "/api/upload"
}
您应该对以下两个输入参数使用@RequestPart
:
@PostMapping("/upload", consumes = {"multipart/form-data"})
public String singleFileUpload(@RequestPart("item") Item item, @RequestPart("file") MultipartFile file) {
// logic
}
使用curl请求进行验证
curl -H 'Content-Type: multipart/form-data' -F item='{"key": "value"};type=application/json' -F file='@/path/to/file;type=application/octet-stream' http://'your-url' --trace-ascii -
如果curl跟踪输出仍然不适用,请打印它。使用多部分/表单数据的内容类型
。
@ShaneCoder我编辑了我的答案。我以前试过用这个。但据我所知,邮递员会自动设置相应的内容类型