Springboot 설정 RestTemplate 두 가지 방식

http 요청 을 보 내 면 http Client 나 okHttpClient 를 사용 하 는 것 이 좋 습 니 다. 직접 통합 하면 사용 할 수 있 습 니 다. Springboot 에서 http 요청 을 보 내 면 Springboot 에 내 장 된 RestTemplate 류 를 선택 할 수 있 습 니 다. http 요청 을 직접 보 낼 수 있 습 니 다. 다른 의존 을 하지 않 고 상 자 를 열 면 사용 할 수 있 습 니 다.
1. RestTemplate 자동 주입 및 설정
  • pom 의존 추가
    <dependency>
      <groupId>org.springframework.bootgroupId>
      <artifactId>spring-boot-starter-webartifactId>
    dependency>
    
  • 첫 번 째 방식
        @Bean
        public ClientHttpRequestFactory simpleClientHttpRequestFactory(){
            SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
            factory.setReadTimeout(30000);  //    ms
            factory.setConnectTimeout(30000);  //    ms
            return factory;
        }
    
        @Bean
        public RestTemplate restTemplate(ClientHttpRequestFactory factory){
            return new RestTemplate(factory);
        }
    
    
  • 두 번 째 방식
    		@Autowired
        private RestTemplateBuilder builder;
    
        //  RestTemplateBuilder    RestTemplate  ,spring       RestTemplateBuilder  
        @Bean
        public RestTemplate restTemplate() {
            builder.setConnectTimeout(60 * 1000)
                   .setReadTimeout(60 * 1000);
            return builder.build();
        }
    
  • 사용 하 다
    RestTemplate 호출 방법
    	//     
    	@Autowired
    	private RestTemplate restTemplate;
    	
    	//1.       
    	String object = restTemplate.getForObject("http://localhost:8080/getString?src=hello", String.class);
    	
    	 //2.      ,      、   、    
    	ResponseEntity<String> entity = restTemplate.getForEntity("http://localhost:8080/getString?src=hello", String.class);
    	
    	// post  
    	User user = restTemplate.postForObject("http://localhost:8080/getUser", postData, User.class);
    	
    	
    	//      
    	HttpHeaders httpHeaders = new HttpHeaders();
    	httpHeaders.add("Content-Type", "application/json;charset=utf-8");
    	
    	//      
    	Map<String, Object> postData = new HashMap<>();
    	postData.put("id", 1L);
    	postData.put("name", "  ");
    	postData.put("age", 18);
    	
    	//            HttpEntity 
    	HttpEntity<Map<String, Object>> httpEntity = new HttpEntity<>(postData, httpHeaders);
    	
    	User user = restTemplate.postForObject("http://localhost:8080/getUser", httpEntity, User.class);
    	
    	
    	//   exchange()  
    	exchange(): URL      HTTP  ,       ResponseEntity,               
    	String strbody=restTemplate.exchange(uri, HttpMethod.GET, entity,String.class).getBody();
    	、WeatherResponse weatherResponse= JSONObject.parseObject(strbody,WeatherResponse.class);
    
    
  • delete (): 이 방법 은 특정한 URL 에서 자원 에 대해 HTTP DELETE 작업 을 수행 하 는 것 입 니 다
  • exchange (): URL 에서 특정한 HTTP 방법 을 실행 하고 대상 을 포함 하 는 ResponseEntity 를 되 돌려 줍 니 다. 이 대상 은 응답 체 에서 매 핑 됩 니 다
  • execute () 는 URL 에서 특정한 HTTP 방법 을 실행 하고 응답 체 에서 비 친 대상
  • 을 되 돌려 줍 니 다.
  • getForEntity () 에서 HTTP GET 요청 을 보 냈 습 니 다. 되 돌아 오 는 ResponseEntity 는 응답 체 가 매 핑 한 대상
  • 을 포함 합 니 다.
  • getForObject () 는 HTTP GET 요청 을 보 내 고 되 돌아 오 는 요청 체 는 대상 으로 비 칩 니 다
  • post ForEntity () ` POST 데 이 터 를 하나의 URL 로 되 돌려 주 고 대상 을 포함 하 는 ResponseEntity 를 되 돌려 줍 니 다. 이 대상 은 응답 체 에서 매 핑 된 것 입 니 다
  • postForObject () POST 데 이 터 를 하나의 URL 로 가 져 와 응답 체 에 따라 형 성 된 대상
  • 을 되 돌려 줍 니 다.
  • headforHeaders () 는 HTTP HEAD 요청 을 보 내 특정 자원 URL 을 포함 하 는 HTTP 헤더
  • 를 되 돌려 줍 니 다.
  • options ForAllow () HTTP OPTIONS 요청 을 보 내 특정 URL 에 대한 Allow 헤더 정 보 를 되 돌려 줍 니 다
  • post ForLocation () POST 데 이 터 를 하나의 URL 로 되 돌려 주 고 새로 만 든 자원 의 URL
  • 을 되 돌려 줍 니 다.
  • put () PUT 자원 에서 특정한 URL
  • 중국어 오류 해결: headers. setContentType (MediaType. APPLICATION JSON UTF 8);

    좋은 웹페이지 즐겨찾기