提问者:小点点

Spring Boot:如何使ContentType标头完全可选?如果未传递,它会抛出一个HttpMediaTypeNotSupportdException


即使没有传递ContentType标头,我也希望我的应用程序能够工作。在我的情况下,请求正文始终是JSON。但下面的代码总是抛出异常

组织。springframework。网状物HttpMediaTypeNotSupportedException:内容类型'application/x-www-form-urlencoded;字符集=UTF-8'不受支持

public class UserController {
    @PostMapping(value = "/updateUser", produces = MediaType.APPLICATION_JSON_VALUE)
    public ResponseEntity<?> updateUserDetails(@RequestBody User user) {
        //Do something
    }

这是意料之中的,但即使在创建自定义配置后,也会出现相同的错误:

@Configuration
public class MyWebConfig implements WebMvcConfigurer {

    @Override
    public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
        configurer.defaultContentType(MediaType.APPLICATION_JSON);
    }
}

如果我传递ContentType头,这就可以了,我想让它成为纯可选的。请帮忙。


共1个答案

匿名用户

可能会出现问题,因为User对象不能有任何getter/setters