使用Spring Boot进行Spring rest:将MultipartFile和Json对象作为参数上传

时间:2016-09-15 18:31:06

标签: java spring rest spring-boot

我知道之前在stackoverflow上询问了这个问题。但是,我还没有找到一个实际测试服务的答案,例如Postman。

我已关注documentation,我的服务与文档中描述的几乎相同:

@PostMapping("/someUrl")
public ResponseEntity<Void> uploadFile(@RequestPart(name="foo", required = false) Foo foo, @RequestPart("file") MultipartFile file) {
    return new ResponseEntity<>(OK);
}

当我尝试使用Postman加热我的服务时,我收到以下错误:

  

org.springframework.web.multipart.MultipartException:当前请求不是多部分请求

在邮递员身上,我收到了以下回复

Postman

问题是:是否可以使用Postman来调用我的服务?如果是,我错过了哪些参数?

2 个答案:

答案 0 :(得分:4)

是的,可以使用Postman呼叫您的服务。

不是将JSON作为文本发送,而是创建一个包含要发送的JSON数据的文件(例如 test.json ):

{
    "teste": "abc"
}

然后在表单数据部分中将foo字段的类型从文本更改为文件,并选择您已创建的JSON文件。

就是这样。点击发送,您的处理请求应该没有任何错误。

注意:标题应保留为空,即不应包含任何自定义的Content-Type值。

答案 1 :(得分:0)

在使用带有json数据的多部分文件时,看起来Postman存在一些问题。 https://github.com/postmanlabs/postman-app-support/issues/576

您可以使用curl测试您的服务,如下所示。

curl -v -H "Content-Type:multipart/form-data" -F "foo={\"teste\":\"abc\"};type=application/json" -F "file=@amazon.png"  http://localhost:8080/v1/files/someURL