RestTemplate 사용 상세 설명
28136 단어 SpringBoot
Spring 은 클 라 이언 트 엔 드 를 동기 화 하 는 핵심 클래스 로 http 서비스 와 의 통신 을 간소화 하고 Restful 원칙 을 만족 시 키 며 프로그램 코드 는 URL 을 제공 하고 결 과 를 추출 할 수 있 습 니 다.기본적으로 RestTemplate 는 jdk 의 HTTP 연결 도구 에 의존 합 니 다.물론 setRequestFactory 속성 을 통 해 다른 HTTP 소스 로 전환 할 수 있 습 니 다.예 를 들 어 Apache HttpComponents,Netty,OkHttp 등 입 니 다.
getForObject()방법
public <T> T getForObject(String url, Class<T> responseType, Object... uriVariables){}
public <T> T getForObject(String url, Class<T> responseType, Map<String, ?> uriVariables)
public <T> T getForObject(URI url, Class<T> responseType)
//provider
@GetMapping("/addUser/{userid}/{username}")
public Map<String,Object> addUser(@PathVariable("userid")Integer userid,
@PathVariable("username") String username){
Map<String,Object> map = new HashMap<>();
map.put("userid",userid);
map.put("username",username);
return map;
}
//consumer
// 1: url
@GetMapping("/getForObject1")
public Map<String,Object> getForObject1(){
Map map = restTemplate.getForObject("http://127.0.0.1:8080/addUser/100/ ", Map.class);
return map;
}
//consumer
// 2: {}
@GetMapping("/getForObject2")
public Map<String,Object> getForObject2(){
//url, ,url
Map map = restTemplate.getForObject("http://127.0.0.1:9090/addUser/{1}/{2}", Map.class,100," ");
return map;
}
//consumer
// 3: map, map key
@GetMapping("/getForObject3")
public Map<String,Object> getForObject3(){
Map<String, Object> params = new HashMap<>();
params.put("userid",99);
params.put("username"," ");
//map key url
Map map = restTemplate.getForObject("http://127.0.0.1:9090/addUser/{userid}/{username}", Map.class,params);
return map;
}
getForEntity()방법
public <T> T getForEntity(String url, Class<T> responseType, Object... uriVariables){}
public <T> T getForEntity(String url, Class<T> responseType, Map<String, ?> uriVariables)
public <T> T getForEntity(URI url, Class<T> responseType)
getForEntity()용법 은 getForObject 와 같 지만 getForEntity 의 반환 값 은 ResponseEntity 입 니 다.ResponseEntity 는 Spring 이 HTTP 요청 에 응답 하 는 패키지 로 응답 코드,contentType,contentLength,응답 체 등 몇 가지 중요 한 요 소 를 포함 합 니 다.
postForObject()방법
public <T> T getForObject(String url, Object request, Class<T> responseType, Object... uriVariables){}
public <T> T getForObject(String url, Object request, Class<T> responseType, Map<String, ?> uriVariables)
public <T> T getForObject(URI url, Object request, Class<T> responseType)
대상 을 매개 변수 로 하 다
//provider
@PostMapping("/user")
public String addUser(@RequestBody UserVo userVo){
//userVo
System.out.println(userVo);
return "OK";
}
//consumer
@RequestMapping("/add")
public String add(){
HttpHeaders headers = new HttpHeaders();
// json
headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
//
UserVo userVo = new UserVo();
userVo.setId(111);
userVo.setName(" ");
HttpEntity<UserVo> request = new HttpEntity<>(userVo, headers);
String s = restTemplate.postForObject("http://127.0.0.1:9090/user", request, String.class);
return s;
}
map 형식 을 매개 변수 로
//provider
@PostMapping("/user2")
public String addUser(@RequestBody Map<String,Object> map){
// : map json,
Object token = map.get("token");
Object userVo = map.get("userVo");
System.out.println(userVo);
System.out.println(token);
return "OK";
}
//consumer
@RequestMapping("/add2")
public String add2(){
HttpHeaders headers = new HttpHeaders();
// json
headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
//
UserVo userVo = new UserVo();
userVo.setId(111);
userVo.setName(" ");
LinkedMultiValueMap<String, Object> map = new LinkedMultiValueMap<>();
map.add("userVo",userVo);
map.add("token","asedfasdfase");
HttpEntity<LinkedMultiValueMap<String, Object>> request = new HttpEntity<>(map, headers);
String s = restTemplate.postForObject("http://127.0.0.1:9090/user2", request, String.class);
return s;
}
postForEntity()방법
public <T> T getForEntity(String url, Object request, Class<T> responseType, Object... uriVariables){}
public <T> T getForEntity(String url, Object request, Class<T> responseType, Map<String, ?> uriVariables)
public <T> T getForEntity(URI url, Object request, Class<T> responseType)
postForEntity()의 용법 은 getForObject 와 같 지만 psotForEntity 의 반환 값 은 ResponseEntity 입 니 다.ResponseEntity 는 Spring 이 HTTP 요청 에 응답 하 는 패키지 로 응답 코드,contentType,contentLength,응답 체 등 몇 가지 중요 한 요 소 를 포함 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Java・SpringBoot・Thymeleaf】 에러 메세지를 구현(SpringBoot 어플리케이션 실천편 3)로그인하여 사용자 목록을 표시하는 응용 프로그램을 만들고, Spring에서의 개발에 대해 공부하겠습니다 🌟 마지막 데이터 바인딩에 계속 바인딩 실패 시 오류 메시지를 구현합니다. 마지막 기사🌟 src/main/res...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.