【发布时间】:2020-08-11 18:58:37
【问题描述】:
当我尝试实现ErrorDecoder 来解码假装异常时,我发现response.body() 中的流已关闭,所以当我尝试读取流并转换为字符串时,它会抛出java.io.IOException: stream is closed。真的很困惑,因为在解码器之前,我没有做任何事情来关闭高级流。
public class FeignClientErrorDecoder implements ErrorDecoder {
@Override
public Exception decode(String methodKey, Response response) {
log.info("feign client response: {}", response);
String body = null;
try {
body = Util.toString(response.body().asReader(Charset.defaultCharset()));
} catch (IOException e) {
log.error("feign.IOException", e);
}
return new ServiceException(MessageCode.builder(ExceptionCodeEnum.ERROR));
}
}
【问题讨论】:
标签: java stream feign openfeign