@RestController
@RequestMapping("/user")
public class UserController {
@PostMapping(value = "/",
consumes = MediaType.APPLICATION_JSON_UTF8_VALUE,
produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<InternalUser> saveInternalUser(@RequestBody InternalUserDTO dto){
InternalUser user = internalUserService.saveInternalUser(dto);
return new ResponseEntity<>(user, HttpStatus.CREATED);
}
这是我的课。为什么我使用带有有效json的邮递员到该URL http://localhost:8090/user
我得到
的错误Resolved [org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/x-www-form-urlencoded' not supported]
我尝试了这个 https://stackoverflow.com/a/38252762/11369236
我不想在这里使用requestparam
https://stackoverflow.com/a/43065261/11369236
一些答案建议使用
consumes = MediaType.APPLICATION_JSON,
但是弹簧给出了错误:
attribute must be constant
我该怎么办?
答案 0 :(得分:1)
您必须在请求中添加Content-type: application/json;charset=utf-8
标头。
默认情况下(如果没有Content-type
标头),POST请求正文的内容类型为application/x-www-form-urlencoded
。
@RequestMapping
在consumes = MediaType.APPLICATION_JSON_UTF8_VALUE
中提到,请求主体中应采用UTF-8
编码的json。这就是为什么spring引发异常。
答案 1 :(得分:1)
使用原始为API请求发送JSON数据