본문 바로가기

it-day/springboot

HttpResponse<InputStream> 예제

//PDF 
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> callGetApi(String url) throws Exception {
	log.info("[API] url = {} " , url );

	Unirest.setTimeouts(30 * 1000, 30 * 1000);
	HttpResponse<InputStream> response = Unirest.get(yml에선언 + url).asBinary();

	log.info("[API] response.getStatus() = {} " , response.getStatus() );
	log.info("[API] response.getBody() = {} " ,  response.getBody() );

	return response;
}
//Json
private HttpResponse<String> callApiByJson(String httpType, String url, String param) throws Exception {
	logger.info("[API] url = {} " , url );
	logger.info("[API] param = {} " , param );


	Unirest.setTimeouts(60 * 1000, 60 * 1000);
	HttpResponse<String> response = null;

	if(httpType.equals("get")){
		response = Unirest.get( yml에선언 + url )
				//.header( "jwt-token" , loginRequest() ) 인증토큰있어야할때
				.asString();
	}else{
		response = Unirest.post( yml에선언 + url )
					   // .header( "jwt-token" , loginRequest() ) 인증토큰있어야할때
						.header( HttpHeaders.CONTENT_TYPE , MediaType.APPLICATION_JSON.toString() )
						.body( param )
						.asString();
	}

	logger.info("[API] response.getStatus() = {} " , response.getStatus() );
	logger.info("[API] response.getBody() = {} " ,  response.getBody() );

	if(response.getStatus()!=200){
		throw new Exception(response.getBody());
	}

	return response;
}
//Multipart
private HttpResponse<String> callApiByMultipart(String url, MultipartFile multipartFile, String docType) throws Exception {
	logger.info("[API] url = {} " , url );
	String fileName = multipartFile.getOriginalFilename();
	String contentType = multipartFile.getContentType();
	ContentType parseContentType = ContentType.parse(contentType);

	Unirest.setTimeouts(30 * 1000, 30 * 1000);
	HttpResponse<String> response = Unirest.post( yml에선언 + url )
			.field("multipartFile", multipartFile.getInputStream(), parseContentType, fileName)
			.field("docType", docType)
			.asString();

	logger.info("[API] response.getStatus() = {} " , response.getStatus() );
	logger.info("[API] response.getBody() = {} " ,  response.getBody() );

	return response;
}