자바로 지도/로컬 API URLConnection 이용시 오류발생으로 문의드립니다

먼저 코드 올립니다.

URL url = new URL("https://dapi.kakao.com/v2/local/geo/transcoord.json?x="+tmX+"&y="+tmY"&input_coord=WTM&output_coord=WGS84"+"Authorization=KakaoAK "+DAUM_KEY);

URLConnection con = url.openConnection

BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(), “UTF-8”));
String inLine;
String returnLine = “”;

while((inLine = br.readLin()) != null){
returnLine += inLine+"\n";
}

br.close();

WTM좌표를 입력하여 WGS84로 변환하는 소스를 구현했습니다.

위의 소스를 이용하면

“javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No subject alternative DNS name matching dapi.kakao.com found.”

에러 메시지가 나오고 그에 따른 해결책으로

URLConnection을 httpsURLConnection으로 변경하고 connection 하기 전에

HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier(){
public boolean verify(String a, SSLSession ssl){
return true;
}
});

를 이용하여 DNS 체크시 무조건 true로 반환하도록 변경하였더니 IOException이 떨어집니다. 에러메시지 내용으로는

java.io.IOException: Server returned HTTP response code: 502 for URL: https://dapi.kakao.com/v2/local/geo/transcoord.json?x=184831.7935341459&y=451114.1696516846&input_coord=WTM&output_coord=WGS84&Authorization=KakaoAK {DAUM_KEY}

라고 나옵니다.

해당 URL을 사이트 주소창에 넣었더니 {“errorType”:“AccessDeniedError”,“message”:“cannot find appkey”} 라고 나옵니다.

appkey를 넘겨주는 방식에 문제가 있는건지 키값이 잘못된건지 궁금합니다.

URL에 Authorization 인증 키를 같이 넣는게 아니고 setRequestProperty로 추가해주니 해결되네요

다른 분의 게시물 보고 해결했습니다.

2개의 좋아요