问题

调用外部系统,controller接收参数用的是Map<String,Object>,后面把map转换成json字符串进行body加密,body转换的json字符串都是一致的,但是一次能成功,一次失败

成功:直接通过swigger调用,body参数为json字符串

失败:通过feign调用,body参数为对象

通过日志查看body转换的字符串和base64后的字符串都一样,一个成功一个失败

原因

失败的传递为一个对象,如果对象有的值没有封装,也会传递过去

 

 上游在序列化,没有去掉null值,一起序列化

解决

1.把对象参数修改为map传递参数

2.上游修改序列化方式,不序列化null值

3.本地修改序列化方式,保留null值