通过OpenFeign调用接口,我们期望的是返回200响应码,但是现实中总会返回其他状态码的,对于返回其他状态码时如何处理,OpenFeign也为我们提供了自定义解析的方式。
自定义ErrorCoder
public class MyErrorDecoder implements ErrorDecoder {@Overridepublic Exception decode(String methodKey, Response response) {//打印执行的方法 ProviderClient#test()System.out.println(methodKey);if(response.status()<500){//自定义异常抛出return new Exception("非服务器异常");}else {return new Exception("服务器异常");}}}
public class ProviderClientConfiguration {@Beanpublic ErrorDecoder myErroDecoder(){return new MyErrorDecoder();}}
通过Yaml方式当然也可以: feign:
client:
config:
default:
loggerLevel: BASIC
_#decode404: true
_errorDecoder: com.gao.consumernacosdemotimeout.config.MyErrorDecoder
ErrorCoder方法入参
methodKey:Feign类名#Feign方法名Response:响应信息
