春季休息与春季启动:上传MultipartFile和Json对象作为参数

问题描述:

我知道这个问题之前被问到了*。然而,我还没有找到一个答案,实际上测试使用,例如邮递员的服务。春季休息与春季启动:上传MultipartFile和Json对象作为参数

我都跟着documentation和我的服务几乎是一样的文档中的说明:

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

当我尝试使用邮差热我的服务,我得到了以下错误:

org.springframework.web.multipart.MultipartException: Current request is not a multipart request

而且对邮递员,我得到了以下的回报

Postman

问题是:是否可以使用邮递服务调用我的服务?如果是这样,我缺少什么参数?

+0

你是否发布了正确的URL('/ someUrl'在你的代码示例中)? – gtonic

+0

是的。我发布到正确的网址 – Gabriel

是的,可以使用邮递员致电您的服务。

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

{ 
    "teste": "abc" 
} 

然后在窗体数据部分更改foo的类型字段从文本文件并选择您创建的JSON文件。

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

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

看起来像使用多部分文件和JSON数据时邮差存在一些问题。 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 "[email protected]" http://localhost:8080/v1/files/someURL