背景
在服务端,暴露了一个接口,是get方式请求的。然后客户端的请求代码如下:
@FeignClient("fyk-business-cxf/testQqOnline")
public interface QqOnlineFeignClient {
@GetMapping("/qqCheckOnline")
public String qqCheckOnline(String qqCode);
}
问题
以上诉方式请求的时候,请求失败,服务端提示,不支持post方式。
因为:在使用Feign时,就算是指定了GET方式,Feign依然会使用POST方法发送请求。
解决方案
要Feign使用get方式请求,需要满足以下两个条件:
- 请求方式指定为get;
- 在所有的请求参数上,加上@RequestParam;
可见,上诉方法中,第二个条件不满足,所以,改成以下条件之后,即可:
@FeignClient("fyk-business-cxf/testQqOnline")
public interface QqOnlineFeignClient {
@GetMapping("/qqCheckOnline")
public String qqCheckOnline(@RequestParam String qqCode);
}