通过OpenFeign调用接口,我们期望的是返回200响应码,但是现实中总会返回其他状态码的,对于返回其他状态码时如何处理,OpenFeign也为我们提供了自定义解析的方式。
自定义ErrorCoder
public class MyErrorDecoder implements ErrorDecoder {
@Override
public 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 {
@Bean
public 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
:响应信息