feign调用端将 getMapping 识别成postMapping
经大量测试,只要参数标注@RequestParam 使用get请求,参数标注@RequestBody 使用post请求
1.由于以下@requestParam 里面没有加value,所以get请求被识别成了post请求
-
客户端
-
服务端
2.若是参数中有@RequestBody对象,会强制的将get请求转为post请求
步骤:
- 加入feign配置项
feign:
httpclient:
enabled: true
- 加入两个依赖
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.9</version>
</dependency>
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-httpclient</artifactId>
<version>10.2.3</version>
</dependency>
3.多个参数,其中一个没有加@RequestParam
@RequestMapping(value="/user/name", method=RequestMethod.GET)
User findByUsername(final String userName, @RequestParam("address") final String address);
原因:userName没有被@RequestParam修饰,会自动被当作@RequestBody来处理。只要有@RequestBody,那么就会被当做post请求处理