【发布时间】:2019-05-07 05:06:20
【问题描述】:
我遇到了一个看起来非常简单的问题。我有一个 http 端点,它应该接受 JSON 正文或上传的文件。
这里是控制器方法的定义:
@PostMapping(value = "/api/endpoint")
public CompletableFuture<ResponseEntity<Void>> createResource(
@RequestParam(name = "file", required = false) MultipartFile file,
@RequestBody(required = false) Command command){
}
Command 是一个 POJO 类,带有用于反序列化的 Jackson 注释。
当我使用 Content-Type: application/json 传递 JSON 正文时,它工作正常。但是当我使用 Content-Type: multipart/form-data 传递文件时,我得到 415 Unsupported Media Type。
这是仅传递 JSON 正文时的原始 http 请求。
POST /api/devices?= HTTP/1.1
Host: localhost:8080
Content-Type: application/json
cache-control: no-cache
{"foo": "bar"}------WebKitFormBoundary7MA4YWxkTrZu0gW--
任何想法是什么导致了这个,谢谢。
【问题讨论】:
-
只是为了确定,你配置了 org.springframework.web.multipart.commons.CommonsMultipartResolver 吗?
标签: spring-mvc spring-boot spring-rest