diff --git a/jetlinks-components/io-component/src/main/java/org/jetlinks/community/io/excel/DefaultImportExportService.java b/jetlinks-components/io-component/src/main/java/org/jetlinks/community/io/excel/DefaultImportExportService.java index 474d291a..06bdb37a 100644 --- a/jetlinks-components/io-component/src/main/java/org/jetlinks/community/io/excel/DefaultImportExportService.java +++ b/jetlinks-components/io-component/src/main/java/org/jetlinks/community/io/excel/DefaultImportExportService.java @@ -18,10 +18,15 @@ import java.io.InputStream; @Component public class DefaultImportExportService implements ImportExportService { + private final WebClient.Builder builder; + + public DefaultImportExportService(WebClient.Builder builder) { + this.builder = builder; + } public Flux> doImport(Class clazz, String fileUrl) { return getInputStream(fileUrl) - .flatMapMany(inputStream -> ExcelReadDataListener.of(inputStream, clazz)); + .flatMapMany(inputStream -> ExcelReadDataListener.of(inputStream, clazz)); } @Override @@ -31,16 +36,17 @@ public class DefaultImportExportService implements ImportExportService { public Mono getInputStream(String fileUrl) { - return Mono.defer(()->{ + return Mono.defer(() -> { if (fileUrl.startsWith("http")) { - return WebClient.create().get() + return builder.build() + .get() .uri(fileUrl) .accept(MediaType.APPLICATION_OCTET_STREAM) .exchange() .flatMap(clientResponse -> clientResponse.bodyToMono(Resource.class)) .flatMap(resource -> Mono.fromCallable(resource::getInputStream)); } else { - return Mono.fromCallable(()->new FileInputStream(fileUrl)); + return Mono.fromCallable(() -> new FileInputStream(fileUrl)); } });