개발 환경 = Java 17, Spring Boot 3.1.7, IntelliJ
디벨로퍼스 앱 ID = 790815
문제 사항) HttpURLConnection을 이용해서 API를 호출하려는데 헤더를 못 찾아서 계속 400 에러가 뜨네요.
KakaoAK를 접두사로 붙여줬고, 띄어쓰기도 해줬는데도 아예 헤더 자체를 인식 못 하는 것 같아요.
public String sendGetData() throws Exception {
String response = "";
BufferedReader in = null;
try {
String sendUrl = "https://dapi.kakao.com/v3/search/book?target=title&query=미움받을 용기";
URL url = new URL(sendUrl);
// url 연결
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setRequestProperty("Content-Type", "application/json"); //content-Type 설정
conn.setDoOutput(true); // 서버에서 온 데이터를 출력할 수 있는 상태인지
conn.setRequestProperty("Authorization", "KakaoAK " + "rest api key 입력함");
conn.setRequestMethod("GET"); // GET / POST
in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
String inputLine;
StringBuffer sb = new StringBuffer();
while((inputLine = in.readLine()) != null) { // response 출력
System.out.println(inputLine);
sb.append(inputLine);
}
response = sb.toString();
} catch (Exception e) {
throw e;
} finally {
if(in != null){
in.close();
}
}
return response;
}