feign 远程异常处理配置
记一次feign远程调用错误
由于响应数据过大,导致了feign使用了GZIP数据压缩
feign的默认配置没有使用GZIP解压出现的异常
feign 配置
#feign 配置
#feign 使用gzip压缩和解压
feign.compression.request.enabled=true
#配置响应 GZIP 压缩
feign.compression.response.enabled=true
#配置压缩支持的 MIME TYPE
feign.compression.request.mime-types=text/xml,application/xml,application/json
#配置压缩支持的 GZIP 解压缩
feign.compression.response.useGzipDecoder=true
#配置压缩数据大小的最小阀值,默认 2048
feign.compression.request.min-request-size=512
feign.client.config.default.read-timeout=60000
feign.client.config.default.logger-level=headers
feign.client.config.default.connect-timeout=60000
feign 请求数据共享配置
共享Cooike header等数据
@Bean
public RequestInterceptor requestInterceptor() {
return new RequestInterceptor() {
@Override
public void apply(RequestTemplate requestTemplate) {
ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
if (requestAttributes != null) {
HttpServletRequest request = requestAttributes.getRequest();
Enumeration<String> attributeNames = request.getHeaderNames();
if (attributeNames != null) {
while (attributeNames.hasMoreElements()) {
String name = attributeNames.nextElement();
String value = request.getHeader(name);
requestTemplate.header(name, value);
}
}
}
}
};
}