总体说明
feign消费服务时,以GET方式请求的条件:
如果想让服务消费者采用GET方式调用服务提供者,那么需要:
1. 服务消费者这边feign调用时,在所有参数前加上@RequestParam注解。
2. 服务消费者这边feign调用时,指明为GET方式(注:如果不指明method,那么在条件1满足的情况下,采用的是默认的GET方式)。
注:这里条件1和条件2,是“且”的关系(都满足时,才为GET)。
feign消费服务时,以POST方式请求的条件:
如果想让服务消费者采用POST方式调用服务提供者,那么只需要:
1. 服务消费者这边feign调用时,在所有参数前加上@RequestParam注解,并指明feign消费服务的方式为POST。
2. 服务消费者这边feign调用时,有且只有一个参数前为@RequestBody或什么也没有(如果有多个参数,那么其余参数前必须有@RequestParam,且最多只能有一个@RequestBody)。
注:这里条件1和条件2,是“或”的关系(当至少一个满足时,即为POST)。
注:在服务消费者中,使用feign消费服务时,如果参数前什么也不写,那么默认是由@RequestBody指明的。
注:@RequestBody注解的参数,需要POST方式才能传递数据。
注:在服务提供者的Controller中,
如果要接收(服务消费中传过来的)被@RequestBody指明的参数,那么对应方法的对应参数前一定要有@RequestBody;
(如果没有的话,收到的参数值就为null;如果写成@RequestParam的话,那么feign调用会失败)。
如果要接收(服务消费中传过来的)被@RequestParam指明的参数,那么可以写@RequestParam,也可以不写(当服务提供者中对应的参数名字与服务消费者传过来的参数名字一致时,可以不写,不一致时,需要写)
---------------------
原文:https://blog.csdn.net/justry_deng/article/details/80785973