반응형
RequestEntity
springframework에서 제공하는 HttpEntity 의 상속클래스.
url 요청을 보낼 때 사용. responseEntity랑 짝꿍임
header, body, method, url, type을 생성자 파라미터로 넘길 수 있다.
RequestEntity 사용 예시
//header 생성
HttpHeaders headers = new HttpHeaders();
headers.add("Accept", MediaType.APPLICATION_JSON_VALUE);
headers.add("Content-Type", MediaType.APPLICATION_FORM_URLENCODED_VALUE + ";charset=UTF-8");
//url 생성
URI url = URI.create("https://https://mchch.tistory.com/");
//requestEntity 생성(방법1)
//header, method, url 을 파라미터로 하여 생성자 호출
RequestEntity<String> req1 = new RequestEntity<>(headers, HttpMethod.GET, url);
//body 생성
String body = "test"
//requestEntity 생성(방법2)
RequestEntity<String> req2 = RequestEntity.post(new URI("https://https://mchch.tistory.com/"))
.accept(MediaType.APPLICATION_JSON)
.body(body);
RestTemplate
exchange 메소드를 사용해서 http 요청을 보내고
ResponseEntity 객체를 return 받는다
url, method, requestEntity, responseType 을 생성자 파라미터로 넘길 수 있다.
RestTemplate 의 exchange 사용 예시
RestTemplate restTemplate = new RestTemplate();
//RequestEntity와 responseType을 파라미터로 명시함
//ResponseEntity를 리턴받음
ResponseEntity<String> res = restTemplate.exchange(req, String.class);
ResponseEntity
springframework에서 제공하는 HttpEntity 의 상속클래스.
url 요청에 응답할 때 사용
body, header, status를 생성자 파라미터로 넘길 수 있다.
ResponseEntity 사용 예시 1
RestTemplate template = new RestTemplate();
//getForEntity : 요청한 URL 주소로 HTTP GET 요청을 보내고, ResponseEntity를 반환받음
ResponseEntity<String> entity = template.getForEntity("https://example.com", String.class);
//body 추출
String body = entity.getBody();
//헤더부의 contentType 추출
MediaType contentType = entity.getHeaders().getContentType();
//statusCode 추출
HttpStatus statusCode = entity.getStatusCode();
ResponseEntity 사용 예시 2
response Entity를 API url 호출에 대한 응답으로 사용할 수도 있음
//응답 message, 상태코드를 담은 response entity 생성
ResponseEntity<> response1 = new ResponseEntity<>("success", HttpStatus.OK);
//헤더 생성
MultiValueMap<String, String> header = new LinkedMultiValueMap<>();
header.add("Accept", MediaType.APPLICATION_JSON_VALUE);
header.add("Content-Type", MediaType.APPLICATION_FORM_URLENCODED_VALUE + ";charset=UTF-8");
//응답 헤더, 상태코드를 담은 response entity 생성
ResponseEntity<> response2 = new ResponseEntity<>(header, HttpStatus.SERVICE_UNAVAILABLE);
//상태코드는 필수
ResponseEntity<> response3 = new ResponseEntity<>(HttpStatus.OK);
///////////////////////////API 호출, ResponseEntity반환 예시//////////////////
public ResponseEntity<?> Download(String type, String category){
try{
return new ResponseEntity<>("성공", HttpStatus.OK);
}catch(NullPointerException e){
return new ResponseEntity<>("데이터가 없습니다.", HttpStatus.SERVICE_UNAVAILABLE);
}
}
반응형
'코딩 관련 > Spring 관련' 카테고리의 다른 글
[SpringBoot] ** WARNING ** : Your ApplicationContext is unlikely to start due to a @ComponentScan of the default package. (0) | 2021.09.06 |
---|---|
[Spring Boot] -Dspring 사용, spring boot 환경설정 (0) | 2021.08.18 |
[JPA] BaseTimeEntity LocalDateTime format 변경 (0) | 2021.07.06 |
intellij Spring boot profile 적용 (0) | 2021.07.06 |
spring initializr을 이용한 Intellij 에서 Spring Boot 프로젝트 시작하기 (0) | 2021.06.02 |