通过feign去服务间调用时,如果包含流数据,不要试图打印 response 里边的数据,会导致IO异常
Don't use any of the above feature before get the response.body()
就是因为使用log来输出日志,内部关闭了输入流。
详细解析可以看 https://stackoverflow.com/questions/61472139/openfeign-errordecoder-caused-java-io-ioexception-stream-is-closed
@Service
@FeignClient(
name = "${XXX}",
path = "${XXX}",
url = "${XXX}")
public interface DocFileAPI {
@GetMapping(
value = "/file/downloadById",
produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
Response readFileStreamById(@RequestParam("fileId") Long fileId);
}
@Autowired private DocFileAPI docFileAPI;
Response response = docFileAPI.readFileStreamById(123L);
//不要试图打印 response 里边的数据,会导致IO异常
//log.info("响应数据:,{}",response.body());
InputStream inputStream = response.body().asInputStream();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)