GET接口接收参数使用了@RequestBody 入参
@GetMapping("/getUser")
public R getUser(@RequestBody UserParam userParam){
return userManger.getUser(userParam);
本篇内容是“**异常统一处理**”系列文章的重要组成部分,主要聚焦于对 `HttpMessageNotReadableException` 的原理解析与异常处理机制,并给出测试案例。
HttpMessageNotReadableException : Http消息不可读异常
到多都是在http controller 层 传入参数时所造成的不可解析的异常。
造成原因:
参数中传入的String类型的字段 在接收时 该映射字段时Integer类型
当 Controller 曾 @RequestBody 接受参数时 调用接口时没有传参数时也会抛出此异常。
上面是我遇到的两种情况 可能还有更多种情况 。
由于还没有到Controller 层 就抛出了异常 我们是没有办法再自己的.
时,建议查看异常的详细信息,通常异常信息会提供有关具体问题的线索。通过仔细排查可能导致异常的原因,可以更有效地解决问题。是 Spring 框架中一个常见的异常,通常发生在尝试从 HTTP 请求中读取消息时出现问题。的原因和相应的解决方法。在解决问题时,请注意查看异常的详细信息,以获取更多关于具体问题的信息。增加服务器接受请求体的最大大小限制。在 Spring Boot 中,可以通过配置文件或者在。请求体超过服务器的限制大小。这些是一些常见的导致。这里的大小单位可以是。
1.报错原因:
@RequestBody只支持POST请求,GET请求不能使用@RequestBody(其实也是可以的,其实在一般的情况下,GET请求是不可以用@RequestBody来接收参数的。一般情况指的是请求由浏览器或者类似于POSTMAN这样的测试工具发出,我们都知道,Http请求包含请求头和请求体,如果发出的请求中请求体为空,那么使用@RequestBody注解来获取参数肯定是徒劳的。可以使用的情况需要两个条件,一是请求方式为GET,二是请求参数写入请求体中。即接口需要被上层的服务调用而非页面直
第一种情况:
在post接口中定义了@RequestBody入参,接口实际调用的时候没有入参。传入相关参数即可解决,或者在@RequestBody(required=false) 。
@PostMapping(value = "/postpeople")
public BaseResult postPeople(@RequestBody@RequestBody(required=false) SearchParam searchParam) {
log.info("param :{}", J.
在本篇博客中,我们讨论了在Spring框架应用程序中解析JSON时出现的异常,并分析了异常信息及其原因。为了解决这个问题,我们提供了相应的解决方案,并介绍了如何避免类似问题的措施。同时,我们强烈建议升级至IDEA 2023或更新版本,以确保应用程序能够正确处理JSON数据,并避免类似的解析异常。通过遵循良好的JSON数据生成和验证实践,以及使用可靠的JSON库,您可以提升开发效率和代码质量,避免潜在的编码问题。另外,使用Postman的美化功能也可以帮助您在调试和测试阶段更轻松地处理JSON数据。
如果你使用的是Postman或类似的工具来发送请求,你需要确认是否正确地设置了请求体和Content-Type。通常,对于JSON数据,你需要将Content-Type设置为"application/json",并确保在请求体中包含了正确的JSON数据。如果你没有正确地设置请求体或Content-Type,或者你的Category对象与请求体中的数据结构不匹配,Spring就无法正确地解析数据,并会抛出你遇到的错误。,这个错误表明在尝试获取HTTP请求的body部分数据时,发现它是缺失的。
HttpMessageNotReadableException
HttpMessageNotReadableException
大概就是 前端页面传过来的参数与你controller接收的参数类型不匹配
json反序列化失败
第一:参数名和参数一定要匹配正确
第二:@RequestBody要加在对应需要的参数上