문의 시, 사용하시는 개발환경과 디벨로퍼스 앱ID를 알려주세요.
스프링부트3, 자바17 버전 사용하고있어요
package com.KakaoBookApi.Service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.util.UriComponentsBuilder;
@Service
public class ApiService {
private final RestTemplate restTemplate;
@Autowired
public ApiService(RestTemplate restTemplate) {
this.restTemplate = restTemplate;
}
public void searchBooks() {
String url = "https://dapi.kakao.com/v3/search/book";
String apiKey = "";
String queryParam = "한글";
String target = "title";
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(url)
.queryParam("query", queryParam)
.queryParam("target", target);
HttpHeaders headers = new HttpHeaders();
headers.set("Authorization", "KakaoAK " + apiKey);
HttpEntity<String> entity = new HttpEntity<>(headers);
ResponseEntity<String> response = restTemplate.exchange(
builder.toUriString(),
HttpMethod.GET,
entity,
String.class
);
String responseBody = response.getBody();
System.out.println("결과 : " + responseBody);
}
}
이런 식의 서비스 클래스를 만들어서 searchBooks 매서드를 실행시켰을때
queryParam에 영문 쿼리를 보내면
결과가 잘 나오는데 한글 쿼리를 보내면
이런식으로 결과 값이 텅 비어 있습니다… 이유를 잘 모르겠어요.
한글 쿼리를 보낼 때 다른 방법을 써야 하는 건가요?!