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 也可以
上一篇: python 基础练习题