一开始使用的是 HashMap 参考原来写的添加参数:

Map<String, Object> paramMap = new HashMap<>();
paramMap.put(key, value);

后来发现请求的另一个服务通过 @RequestParam 并不能获取到参数,还会报错。添加 @RequestParam(required = false) 是可以不报错,但参数丢了是个大问题。

网上百度到一篇文章提到了 RestTemplate 传递参数的坑

HashMap是以请求体传递,MultiValueMap是表单传递

按照实例更换成 MultiValueMap:

Map<String, Object> paramMap = new LinkedHashMap<String, Object>();
paramMap.add(key, value);

再次提交果然 ok 了。