HttpMediaTypeNotSupportedException: Content type ‘application/json;charset=UTF-8‘ not supported

文章讲述了在处理客户端向服务器发送JSON数据时遇到的HttpMediaTypeNotSupportedException,强调检查Content-Type设置和日志的重要性,以及当常规方法无效时如何通过DEBUG源码定位问题,特别提到Conflictinggetterdefinitions导致的问题和解决方法。
摘要由CSDN通过智能技术生成

HttpMediaTypeNotSupportedException: Content type 'application/json;charset=UTF-8' 表示客户端尝试向服务器发送 JSON 数据,但服务器端没有支持该种媒体类型(Content Type)的处理器来接收和解析这种类型的数据。

解决方法:
①确认客户端请求的头信息中的 Content-Type 是否正确设置为 application/json。
②确认服务器端是否有相应的 HttpMessageConverter 来处理 JSON 数据。对于 Spring 框架,确保你的项目中包含了 Jackson 或 Gson 等 JSON 处理库。
③如果你正在使用 Spring Boot,确保你的项目依赖中包含了 spring-boot-starter-web,它会自动配置必要的 JSON 支持。

 上面异常对应的解决方法,上面3个方法,大分部都可以解决,但是我在昨天工作中,遇到了另外一种情况,这里跟大家分享一下:

首先是百度上面的方法都试了,还是不行。

没办法了,老套路,DEBUG源码:

 1、从源码中发现有相应的转换器来处理请求报文,转换后的错误原因也给了,如下:

Conflicting getter definitions for property "ID": com.example.demo.User#getId(0 params) vs com.example.demo.User#getNamae(0 params)

 经过查看代码发现,

问题出来这里了。

总结一下:

 1、 出了“Content type 'application/json;charset=UTF-8' not supported”异常,不急看客户端服务端的Content-Type设置,应该仔细观察日志。

2、日志有时没有打印,这时可以通过万能的DEBUG了。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HttpMediaTypeNotSupportedException 表示不支持当前的 HTTP 媒体类型。常见的情况是客户端发送了一个请求,但是服务器无法处理该请求的内容类型。在这个错误中,Content type 'application/json;charset=UTF-8' not supported 表示服务器无法处理 Content-Typeapplication/json;charset=UTF-8 的请求。 通常,这个错误出现的原因是客户端发送的请求体的 Content-Type 与服务器所期望的 Content-Type 不匹配。要解决这个问题,可以尝试以下几种方法: 1. 确认客户端发送的请求 Content-Type 是否正确。可以使用浏览器的开发者工具或 Postman 等工具查看请求头和请求体的内容类型。 2. 确认服务器支持客户端发送的请求 Content-Type。可以查看服务器端代码中对于该 Content-Type 的处理方式是否正确。 3. 如果使用的是 Spring 框架,可以使用 @RequestMapping 注解的 consumes 属性来限制支持的请求 Content-Type。例如,@RequestMapping(value = "/user", consumes = "application/json;charset=UTF-8") 表示该接口仅支持 Content-Typeapplication/json;charset=UTF-8 的请求。 4. 如果服务器端代码中没有处理该 Content-Type 的逻辑,可以添加对应的处理逻辑。例如,在 Spring 框架中可以使用 @RequestBody 注解来处理请求体的 JSON 数据,代码示例: ``` @PostMapping("/user") public User addUser(@RequestBody User user) { // 处理请求体中的 JSON 数据 } ``` 通过以上方法,可以解决 Content type 'application/json;charset=UTF-8' not supported 错误。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值