首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Spring 5- Read JSON or MultipartFile

Spring 5- Read JSON or MultipartFile
EN

Stack Overflow用户
提问于 2018-12-05 23:23:33
回答 2查看 633关注 0票数 0

我遇到了一个看起来非常简单的问题。我有一个http端点,它应该接受JSON正文或上传的文件。

下面是控制器方法的定义:

代码语言:javascript
复制
@PostMapping(value = "/api/endpoint")
public CompletableFuture<ResponseEntity<Void>> createResource(
       @RequestParam(name = "file", required = false) MultipartFile file,
       @RequestBody(required = false) Command command){
}

Command是一个带有Jackson注释的POJO类,用于反序列化。当我用Content-Type: application/json传递JSON body时,它工作得很好。但是当我用Content-Type: multipart/form-data传递文件时,我得到了415不支持的媒体类型。

以下是仅传递JSON正文时的原始http请求。

代码语言:javascript
复制
POST /api/devices?= HTTP/1.1
Host: localhost:8080
Content-Type: application/json
cache-control: no-cache
{"foo": "bar"}------WebKitFormBoundary7MA4YWxkTrZu0gW--

任何想法是什么导致这一点,谢谢。

EN

回答 2

Stack Overflow用户

发布于 2018-12-05 23:43:43

尝试下面的代码。

代码语言:javascript
复制
@PostMapping(value = "/api/endpoint",consumes = {"multipart/form-data"})
public CompletableFuture<ResponseEntity<Void>> createResource(
       @RequestPart("file") MultipartFile file,
       @RequestPart Command command){
}
票数 0
EN

Stack Overflow用户

发布于 2018-12-06 00:41:14

您可能需要两个具有不同参数和注释的独立方法。当然,它们每个都可以为它们的共同行为调用一个共享的内部方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53635524

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档