通过feign接口调用文件下载接口 获取 输入流如下:
报错信息如下:
com.alibaba.excel.exception.ExcelCommonException: Convert excel format exception.You can try specifying the ‘excelType’ yourself
at com.alibaba.excel.support.ExcelTypeEnum.recognitionExcelType(ExcelTypeEnum.java:97)
at com.alibaba.excel.support.ExcelTypeEnum.valueOf(ExcelTypeEnum.java:78)
at com.alibaba.excel.analysis.ExcelAnalyserImpl.choiceExcelExecutor(ExcelAnalyserImpl.java:62)
at com.alibaba.excel.analysis.ExcelAnalyserImpl.(ExcelAnalyserImpl.java:51)
at com.alibaba.excel.ExcelReader.(ExcelReader.java:145)
at com.alibaba.excel.read.builder.ExcelReaderBuilder.build(ExcelReaderBuilder.java:193)
at com.alibaba.excel.read.builder.ExcelReaderBuilder.sheet(ExcelReaderBuilder.java:229)
at com.alibaba.excel.read.builder.ExcelReaderBuilder.sheet(ExcelReaderBuilder.java:217)
at com.ysjr.base.business.service.impl.ImportOrderFileServiceImpl.orderExcel(ImportOrderFileServiceImpl.java:177)
实际获得的输入流类型是HttpInputStream,并不是我们需要的文件流
解决办法:通过HttpClient调用接口获取文件流
String url = hmDocumentUrl + "?fileId=" + fileId;
logger.info("调用 HmBaseDocumentFeign.downloadByFileId 开始,fileId={}", fileId);
CloseableHttpClient client = HttpClients.createDefault();
HttpGet get = new HttpGet(url);
HttpResponse response = client.execute(get);
HttpEntity entity = response.getEntity();
logger.info("调用 HmBaseDocumentFeign.downloadByFileId 结束。");
return entity.getContent();