반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- jQuery
- 필드의다형성
- 객체타입확인
- 생성자참조
- ZipInputStream
- 상속
- 자바
- 정적메소드
- 익명구현객체
- 공백 처리
- 인스턴스메소드
- 오버라이딩
- 요소
- 타깃타입
- 추상메소드
- 디폴트메소드
- 매개변수참조
- 상수필드
- 문자열을 배열
- 인터페이스
- 선택한요소
- 인터페이스의역할
- 람다식
- createTempFile
- 자동타입변환
- java
- 구현클래스
- find
- map에서key와value
- 배열을 문자열
Archives
- Today
- Total
코드지우개
RestTemplate.execute()를 사용하여 File타입으로 리턴 받기 본문
반응형
이번에는 RestTemplate을 사용해서 url로 API를 호출해서 File을 다운로드 받고 File 타입으로 리턴 받는법을 적어보려고 한다.
RestTemplate란?
Spring에서 지원하는 객체로 간편하게 Rest 방식 API를 호출할 수 있는 Spring 내장 클래스이다.
import org.springframework.web.client.RestTemplate;
import org.apache.commons.io.FilenameUtils;
import org.springframework.http.HttpMethod;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.file.Files;
public class Test{
public void test(){
RestTemplate rest = new RestTemplate();
String downloadUrl = "https://testfile.jsp";
//확장자
String extension = "." +FilenameUtils.getExtension(downloadUrl);
File downloadFile = rest.execute( downloadUrl, HttpMethod.GET, clientHttpResponse->{
//file 다운로드
File outputFile = File.createTempFile("download", extension);
//file 다운로드 경로 : C:\Users\사용자\AppData\Local\Temp
try (InputStream in = clientHttpResponse.getBody();
FileOutputStream fos = new FileOutputStream(outputFile)) {
byte[] buffer = new byte[1024];
int len;
while ( (len = in.read(buffer)) > 0 ) {
fos.write(buffer, 0, len);
}
fos.close();
} catch (IOException e) {
throw new RuntimeException("Failed to download error >>> ", e);
}
return outputFile;
})
}
}
위에 코드를 보면 RestTemplate.execute()를 사용해서 api를 호출할 url과 Http Method(Get, Post)를 작성을 하여 호출하고createTempFile()를 사용하면 지정된 경로에 file이 다운로드 된다.
그 후 다운로드한 file을 읽어서 FileOutputStream을 통해 file 타입으로 리턴을 할 수 있다.
반응형
'java' 카테고리의 다른 글
입력 스트림과 출력 스트림 ① (0) | 2023.09.05 |
---|---|
File을 MultipartFile 타입으로 변환 (0) | 2023.09.05 |
람다식 ⑤ (0) | 2023.09.05 |
람다식 ④ (0) | 2023.06.05 |
람다식 ③ (0) | 2023.06.05 |
Comments