- RestTemplate이란?
Spring에서 지원하는 객체로 간편하게 Rest 방식 API를 호출할 수 있는 Spring 내장 클래스이다.
Rest API 서비스를 요청 후 응답 받을 수 있도록 설계되어있으며 HTTP 프로토콜의 메소드(ex. GET, POST, DELETE, PUT)들에 적합한 여러 메소드들을 제공한다.
※ Spring 5.0 이후 부터는 RestTemplate는 deprecated 되어 WebClient 사용을 지향함.
- 서버 to 서버 파일 다운로드 예시 코드
// 원격 파일 다운로드 URL
URI url = URI.create(fileUrl);
// connection time out, read time out 셋팅
int timeout = 30000;
HttpComponentsClientHttpRequestFactory clientHttpRequestFactory
= new HttpComponentsClientHttpRequestFactory();
clientHttpRequestFactory.setConnectTimeout(timeout);
clientHttpRequestFactory.setReadTimeout(timeout);
// RestTemplate 생성
RestTemplate rt = new RestTemplate(clientHttpRequestFactory);
ResponseEntity<byte[]> res = rt.getForEntity(url, byte[].class);
byte[] buffer = res.getBody();
// 파일 다운로드 관련 헤더 셋팅
res = ResponseEntity.ok()
.header(HttpHeaders.CONTENT_DISPOSITION, String.format("attachment; filename=\"%s\"", fileName))
.header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_OCTET_STREAM_VALUE)
.header(HttpHeaders.CONTENT_LENGTH, bufferStr).body(buffer);
// 파일 저장 경로 셋팅
Path target = Paths.get(filePath, fileName);
// 파일 다운로드
FileCopyUtils.copy(buffer, target.toFile());
참고 :
'IT 관련 정리' 카테고리의 다른 글
포스트맨 요청 여러개 새 탭에서 열기 (1) | 2023.01.19 |
---|---|
[JAVA 크롬에서 안 깨지는 mht파일 생성] html 파일 mht 파일로 변환, mht 파일 내부 이미지 저장 방법 (0) | 2022.12.24 |
[이클립스 오류] 맥 Ventura 13.0 업데이트 시 로케일을 인식할 수 없습니다 오류 해결법 (0) | 2022.11.10 |
[JS text 클립보드 복사] div, td 형식에서 내용 클립보드에 복사하는 법 (0) | 2022.10.27 |
[오프라인으로 우분투에 노드 설치하는 방법] 인터넷 연결 없이 우분투 서버에 Node.js 설치하는 방법 (0) | 2022.08.12 |