package com.tenwa.app.invoice.utils; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; import org.springframework.http.ResponseEntity; import org.springframework.web.client.RestTemplate; import org.springframework.web.util.UriComponentsBuilder; import java.io.*; import java.net.URI; public class DownloadPdfUtil { public static void go(String url,String localUrl) throws Exception { RestTemplate restTemplate = new RestTemplate(); UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(url); URI uri = builder.build(true).toUri(); String filePath = localUrl ; File file = new File(filePath); File parentFile = file.getParentFile(); if(!parentFile.exists()){ parentFile.mkdirs(); } InputStream inputStream = null; OutputStream outputStream = null; try { HttpHeaders headers = new HttpHeaders(); ResponseEntity response = restTemplate.exchange(uri, HttpMethod.GET, new HttpEntity(headers), byte[].class); byte[] result = response.getBody(); inputStream = new ByteArrayInputStream(result); outputStream = new FileOutputStream(new File(filePath)); int len = 0; byte[] buf = new byte[1024]; while ((len = inputStream.read(buf, 0, 1024)) != -1) { outputStream.write(buf, 0, len); } outputStream.flush(); } catch (Exception e) { e.printStackTrace(); throw new Exception(e); } finally { try { if (inputStream != null) inputStream.close(); if (outputStream != null) outputStream.close(); } catch (IOException e) { e.printStackTrace(); throw new IOException(e); } } } }