토큰 받기 REST API 중 오류가 발생하여 문의드립니다

개발환경 : Springboot
앱 ID :1000660

안녕하세요.
‘카카오싱크>토큰받기’ 부분을 기존에 아래 코드로 요청 시 정상동작 하였는데 현재 Query String형식으로 보내주지 않으면 에러가 발생합니다.

client_secret 코드 값도 사용 안하고 있습니다.

확인부탁드립니다.

기존 Post body에 data 넣어서 요청하는 형식(기존에 정상 동작 → 401 Unauthorized(KOE010) 에러 발생

ResponseEntity<Map> response = rt.exchange(
				token_url, 
				HttpMethod.POST,
				entity,
				Map.class
				);

현재 정상 동작하는 코드

String str = params.entrySet().stream().map(e -> e.getKey() + "=" + e.getValue())
                .collect(Collectors.joining("&"));
ResponseEntity<Map> response = rt.postForEntity(token_url+str, null, Map.class);

안녕하세요.

코드에 원인이 있을것 같은데요
구현하신 코드 모두 올려봐 주시겠어요?

호출 코드 전문입니다.

@PropertySource("classpath:properties/sync.properties")
@RestController
public class KakaoSyncController {
	
	@Value("${kakao.sync.client_id}")
	private String client_id;
	
	@Value("${kakao.sync.redirect_uri}")
	private String redirect_uri;
	
	@Value("${kakao.sync.token_url}")
	private String token_url;
	
	private SyncUtil syncUtil;
	
	@GetMapping("/cust/code.do")
	public void getSyncCode(SyncCode code) throws IllegalAccessException, NoSuchFieldException, SecurityException {
		RequestToken requestToken = new RequestToken();
		requestToken.setClient_id(client_id);
		requestToken.setRedirect_uri(redirect_uri);
		requestToken.setCode((String) code.getCode());
		requestToken.setClient_secret(null);
		System.out.println("response : " + sendRestAPI(requestToken, token_url));
	}
	
	public ResponseEntity<ResponseToken> sendRestAPI(Object obj, String targetUrl) throws IllegalAccessException, NoSuchFieldException, SecurityException{
		RestTemplate rt = new RestTemplate();
		rt.setRequestFactory(new HttpComponentsClientHttpRequestFactory());
		
		//헤더셋팅
		HttpHeaders headers = new HttpHeaders();
		headers.add("Content-type", "application/x-www-form-urlencoded;charset=UTF-8");
		
		//보낼 파라메터 셋팅
		MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
//		Map<String, Object> params = new HashMap();
		for(Field field : obj.getClass().getDeclaredFields()) {
			field.setAccessible(true);
			String value = (String) field.get(obj);
			params.add(field.getName(), value);
		}
		
		//파라메터와 헤더 합치기
		HttpEntity<MultiValueMap<String, String>> entity = new HttpEntity(headers, params);
		
		// 요청 보내고 응답받기
		ResponseEntity<ResponseToken> response = rt.exchange(
				token_url, 
				HttpMethod.POST,
				entity,
				ResponseToken.class
				);
		return response;
	}
}

헤더 값을 앞에 셋팅 한것으로 보이는데요 순서 바꿔 보시겠어요?
new HttpEntity(params, headers);

바꿨더니 정상작동됩니다 감사합니다!