type
status
date
slug
summary
tags
category
icon
password
开发一个模拟API接口时出现了问题
📝 问题描述
使用hutool工具发送Restful的post请求时,出现400错误(应该是参数传递问题),传递参数为一个User类,我原先使用了lombok的
@
AllArgsConstructor
注解,然后直接使用带参构造器传入属性,之后使用Hutool工具转为Json,这样会出现400。但是当我没有用带参构造,而是用setter方法,错误消失。🤗 问题排查
- 首先我检查了target目录下User在使用
@
AllArgsConstructor
下的生成文件,发现实时上没什么区别,只是多了一个有参构造
- 于是我觉得是转换成json格式的时候有问题?设置断点,查看两种的json输出。
这是无有参构造的user变量以及生成的json:
这是使用有参构造的user变量以及生成的json:
发现json传入一样的数值但是结果却是一个200,一个400。
陷入沉思。。。
这个问题应该和lombok组件无关,我自己尝试写了一下有参构造,结果是一样的。
再经过我重重尝试之后,发现当我提供了无参构造之后就不会发生这种情况。
阅读源码,发现在其反序列化json数据的时候会调用无参构造,因此若无无参构造会出现无法反序列化的场景(源码里是抛出无法建立对象的错误),从而出现错误。
如果有其他问题请在下方留言
- Author:灵檠
- URL:https://blog.ly-qing.lol/article/5576fcfc-b364-4e33-b5b5-8b015c69e3ce
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts