欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Fegin调用传参会拼接在url后面的问题解决办法

程序员文章站 2024-02-24 13:48:34
...

问题发现场景

原fegin的代码如下

@FeignClient(value = "zz-atexpress",contextId = "AtExpressClient")
public interface AtExpressClient {
//@ApiOperation("获取at公式的值")
@PostMapping("/zzAtexpress/exeuteAtExpress")
ResultInfo exeuteAtExpress(@RequestParam String processInstId
, @RequestParam String taskId, @RequestParam String atExpress);
}

这样 当我传递的值atExpress=aaa&[email protected]时 那么fegin就会把参数拼接在url后面导致

实际atExpress接收到的值是aaa  而不是aaa&[email protected]

参数带@RequestParam的都会拼接在url后面  不管是post还是get contenttype值是否其他的任何值

解决办法如下

@FeignClient(value = "zz-atexpress",contextId = "AtExpressClient")
public interface AtExpressClient {
//这样可以 但是要组装map
@PostMapping("/zzAtexpress/exeuteAtExpress")
ResultInfo exeuteAtExpress(@SpringQueryMap Map<String,?> param);
}

这样  调用之前 要组装map ,但是参数不会拼接在url之后导致 接收参数错误

或者修改接收参数为@requestBody 也可以

相关标签: java java