由于spring boot(Spring MVC)请求校验比较严格,从老版本的jetty微服务servlet
请求改造过程中发现参数处理莫名多出一些符号。经过排查作如下总结:
1、如果请求方的请求头是text/plain等时,spring
boot服务接口没有设置接受请求头,比如@RequestMappin默认application/x-www-form-urlencoded;charset=UTF-8进行参数处理,通过@RequestBody注解获取字符请求体时,请求体后面会多一个=号,因为spring
boot 默认按form表单进行参数处理,把请求体进行url参数方式(key=value&key2=val2)进行处理,所以请求体会多出等号。
2、结构form参数时候,存在多个相同参数时候,会把参数按逗号进行拼接,如key=value1,value2
加入一个value为空值情况时候key=value, 接受参数就处理多余字符。所以一定小心传参。

3、当@RequestMappin 中设置Consumer 来匹配请求头,不符合对应请求头请求,可能会请求失败,或者请求体接受时候,会进行截段等处理。