sitelink1 http://knight76.tistory.com/entry/Spring...8%EC%A0%9C 
sitelink2  
sitelink3  
extra_vars6  

Spring RestTemplate을 사용하는 예제이다. 

 

API 서버와 json 통신(utf)을 하는 예제로서, 결과 값을 List<Object>로 변환하는 예제이다. 

 

한글 정보를 잘 받기 위해 StringHttpMessageConverter 을 잘 활용한다. 한글 깨짐없이 문제 없이 동작한다. 

 

 

https://gist.github.com/knight1128/b0e545a03e2d066da8f6#file-resttemplateintegrationtest

 

 

package com.google.locationlab;

 

import com.google.common.collect.Lists;

import com.google.locationlab.model.LocationResponse;

import org.apache.commons.logging.Log;

import org.apache.commons.logging.LogFactory;

import org.junit.Test;

import org.springframework.core.ParameterizedTypeReference;

import org.springframework.http.*;

import org.springframework.http.converter.HttpMessageConverter;

import org.springframework.http.converter.StringHttpMessageConverter;

import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;

import org.springframework.web.client.RestTemplate;

import org.springframework.web.util.UriComponentsBuilder;

import java.net.URI;

import java.nio.charset.Charset;

import java.util.List;

 

public class RestTemplateIntegrationTest {

private Log logger = LogFactory.getLog(RestTemplateIntegrationTest.class);

 

@Test

public void test() throws Exception {

RestTemplate restTemplate = new RestTemplate();

 

MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();

HttpMessageConverter stringHttpMessageConverter = new StringHttpMessageConverter(Charset.forName("UTF-8"));

 

List<HttpMessageConverter<?>> httpMessageConverter = Lists.newArrayList();

httpMessageConverter.add(mappingJackson2HttpMessageConverter);

httpMessageConverter.add(stringHttpMessageConverter);

restTemplate.setMessageConverters(httpMessageConverter);

 

URI targetUrl = UriComponentsBuilder.fromUriString("http://location-api.google.com")

.path("search")

.queryParam("text", "잠실역")

.build()

.toUri();

 

HttpHeaders headers = new HttpHeaders();

Charset utf8 = Charset.forName("UTF-8");

MediaType mediaType = new MediaType("application", "json", utf8);

headers.setContentType(mediaType);

 

HttpEntity<String> entity = new HttpEntity<String>("parameters", headers);

 

ParameterizedTypeReference<List<LocationResponse>> responseType = new ParameterizedTypeReference<List<LocationResponse>>() { };

ResponseEntity<List<LocationResponse>> responseEntity = restTemplate.exchange(targetUrl.toURL().toString(), HttpMethod.GET, entity, responseType);

List<LocationResponse> result = responseEntity.getBody();

 

logger.info(result);

}

}

 



출처: http://knight76.tistory.com/entry/Spring-RestTemplate-utf8-json-예제 [김용환 블로그(2004-2018)]

번호 제목 글쓴이 날짜 조회 수
공지 [작성중/인프런] 스프링부트 시큐리티 & JWT 강의 황제낙엽 2023.12.20 5040
37 [POST] Spring MVC 구조 분석 황제낙엽 2024.01.17 2041
36 OAuth 2.0 Resource Server - Spring Security OAuth2.0 황제낙엽 2023.12.27 2006
35 [Spring3.1.1] ResponseBody 한글깨짐 해결법 황제낙엽 2018.08.08 2304
34 [Spring3.1.1][4] RestTemplate 한글 문제 황제낙엽 2018.08.08 2181
33 [Spring3.1.1][3] RestTemplate 한글 문제 황제낙엽 2018.08.08 2310
32 [Spring3.1.1][2] RestTemplate 한글 문제 황제낙엽 2018.08.08 1984
» [Spring3.1.1][1] RestTemplate 한글 문제 황제낙엽 2018.08.08 2824
30 NamedParameterJdbcDaoSupport 몇가지 장점 황제낙엽 2007.11.27 1739
29 Spring AOP - Pointcut 황제낙엽 2007.10.02 1769
28 <spring:checkbox> tip! 황제낙엽 2007.10.01 2216
27 스프링 2와 JPA 시작하기 (한글) 황제낙엽 2007.08.27 1633
26 Spring 2.0의 XML확장기능 (3) 황제낙엽 2007.08.15 1709
25 Spring 2.0의 XML확장기능 (2) 황제낙엽 2007.08.15 1806
24 Spring 2.0의 XML확장기능 (1) 황제낙엽 2007.08.15 1467
23 스프링의 구조별 기능 설명 황제낙엽 2007.06.26 1593
22 자바지기 스프링 프레임웍 아티클 황제낙엽 2007.06.04 1467
21 AOP(Aspect Oriented Programming) 황제낙엽 2007.06.03 1394
20 Spring MVC 어플리케이션 개발 <12> 간단한 조회 구현 방안 비교 황제낙엽 2007.05.27 1597
19 Spring MVC 어플리케이션 개발 <11> 간단한 조회 구현 방안 비교 황제낙엽 2007.05.27 1779
18 Spring MVC 어플리케이션 개발 <10> 도메인 객체 수정시 변경 사항 황제낙엽 2007.05.27 1693