feign远程调用RequestParam.value() was empty on parameter 0

在我们写SpringMVC项目是一些细节导致出现这个问题;

SpringMVC中接口为了少按几下键盘会写成这样

	//Post @RequestParam 带参
	@PostMapping("/t5")
	public R t5(@RequestParam String param) {
    
    
		log.info("t5===>"+"开始");
		log.info("t5入参===>"+param);
		log.info("t5===>"+"结束");
		return R.ok();
	}

多敲几下键盘就是这样

	//Post @RequestParam 带参
	@PostMapping("/t5")
	public R t5(@RequestParam("name") String param) {
    
    
		log.info("t5===>"+"开始");
		log.info("t5入参===>"+param);
		log.info("t5===>"+"结束");
		return R.ok();
	}

那么导致我们在写微服务使用feign远程调用时会出现RequestParam.value() was empty on parameter 0报错!
问题再feign远程接口处报错写法如下

	@PostMapping("/testb/t5")
	R t5(@RequestParam String param);

或者

	@PostMapping("/testb/t5")
	R t5(String param);

更改为如下即可

	@PostMapping("/testb/t5")
	R t5(@RequestParam("name") String param);

至于被调用方加不加(“name”)问题不大,产生这个问题的原因和Feign 的实现有关。Feign 的底层使用的是 httpclient,在低版本中会产生这个问题,听说高版本中已经对这个问题修复了。

猜你喜欢

转载自blog.csdn.net/CSDN877425287/article/details/115155208
今日推荐