안녕하세요.
REST API로 java에서 주소로 좌표값 받는 기능을 구현중에 있습니다.
— 소스 —
String location = "경기도 수원시 장안구";
String addr = "https://dapi.kakao.com/v2/local/search/address.json";
String apiKey = "KakaoAK REST API 키";
location = URLEncoder.encode(location, "UTF-8");
String query = "query=" + location;
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append(addr);
stringBuffer.append("?");
stringBuffer.append(query);
System.out.println("stringBuffer.toString() "+ stringBuffer.toString());
URL url = new URL(stringBuffer.toString());
URLConnection conn = url.openConnection();
conn.setRequestProperty("Authorization", apiKey);
BufferedReader rd = null;
>>>>> rd = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8"));
StringBuffer docJson = new StringBuffer();
String line;
while((line=rd.readLine())!=null){
docJson.append(line);
}
if(0<docJson.toString().length()){
System.out.println("docJson :"+docJson.toString());
}
System.out.println(docJson);
해당 소스에서 >>> 표시되어있는 rd 부분에서 디버깅을 하면
java.io.IOException: Server returned HTTP response code: 401 for URL: https://dapi.kakao.com/v2/local/search/address.json?query= % EA%B2%BD%EA%B8 %B0%EB%8F%84+%EC%88% 98%EC%9B%90% EC%8B%9C+%EC%9E% A5%EC%95%88%EA%B5%AC
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1894)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:263)
at egovframework.example.sample.web.EgovSampleController.getAddress_Map(EgovSampleController.java:121)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
이런 에러가 납니다.
REST API키가 잘못된건지… 원인을 몰라 문의 드립니다…