内容类型“应用程序/ x-www-form-urlencoded'不受支持”

时间:2019-07-02 12:29:51

标签: spring http

@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

我该怎么办?

2 个答案:

答案 0 :(得分:1)

您必须在请求中添加Content-type: application/json;charset=utf-8标头。

默认情况下(如果没有Content-type标头),POST请求正文的内容类型为application/x-www-form-urlencoded@RequestMappingconsumes = MediaType.APPLICATION_JSON_UTF8_VALUE中提到,请求主体中应采用UTF-8编码的json。这就是为什么spring引发异常。

答案 1 :(得分:1)

使用原始为API请求发送JSON数据

POSTMAN-POST-REQUEST