Unirest 사용하여 PDF 파일과 같은 바이너리 데이터를 가져와보자
Unirest 라이브러리를 사용하여 특정 URL로 GET 요청을 보내고, 응답을 InputStream 형식으로 받는 메서드
private HttpResponse<InputStream> callGetApiByPdf(String url) throws Exception {
log.info("[API] url = {} " , url );
Unirest.setTimeouts(30 * 1000, 30 * 1000);
HttpResponse<InputStream> response = Unirest.get(yml에선언 + url)
.header("Accept", "application/octet-stream")
.asBinary();
log.info("[API] response.getStatus() = {} " , response.getStatus() );
log.info("[API] response.getBody() = {} " , response.getBody() );
return response;
}
private HttpResponse<InputStream> callGetApiByPdf(String url) throws Exception
- private: 클래스 내부에서만 접근!!
- HttpResponse<InputStream>: HttpResponse 객체를 반환하며, 그 내용은 InputStream 형식
- throws Exception: 예외가 발생할 수 있음을 나타냄
log.info("[API] url = {} ", url);
- 요청을 보내기 전에 URL을 로그로 기록
Unirest.setTimeouts(30 * 1000, 30 * 1000);
- 타임아웃 설정: 연결 타임아웃과 읽기 타임아웃을 각각 30초로 설정
HttpResponse<InputStream> response = Unirest.get(yml에선언 + url)
.header("Accept", "application/octet-stream")
.asBinary();
- Unirest.get(yml에선언 + url): Unirest 라이브러리를 사용하여 GET 요청을 보냄
- .header("Accept", "application/octet-stream"): 서버에게 바이너리 데이터를 기대하고 있음을 알려줌
- .asBinary(): 응답을 바이너리 형식으로 받기
log.info("[API] response.getStatus() = {} ", response.getStatus());
log.info("[API] response.getBody() = {} ", response.getBody());
- 응답 상태 코드와 응답 본문(InputStream)을 로그로 기록
return response;