当前位置: 首页 > 知识库问答 >
问题:

post方法的内容类型“application/x-www-form-urlencoded”不受支持

翟曦
2023-03-14
@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,

但spring给出了错误:

attribute must be constant

我能做什么?

共有2个答案

叶健柏
2023-03-14

使用主体

json prettyprint-override">{
    "name": "John Doe"
    "email": "xyz@abc.com"
}

邮局-邮局-请求

巫马心水
2023-03-14

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

默认情况下(如果Content-type标头不存在),POST请求主体的内容类型为Application/x-wow-form-urlencoded。在@刚需映射by中,消耗=MediaType。APPLICATION_JSON_UTF8_VALUE提到json在UTF-8中预期在请求体中编码。这就是Spring抛出一个例外的原因。

 类似资料: