며칠 동안 서치를 해보면서 얻은 내용은 샘플코드와 webClient를 사용하는 거라고 생각했는데 둘중 한가지 방법만을 사용해도 된다는 글이 있었다 그래서 샘플코드로만 해보고 있다
public static void main(String[] args) throws IOException {
// url을 만들기 위한 StringBuilder
StringBuilder urlBuilder = new StringBuilder("https://apis.data.go.kr/B553662/top100FamtListBasiInfoService/getTop100FamtListBasiInfoList"); /*URL*/
// open api의 요청 규격에 맞는 파라미터 생성, 발급받은 인증키
urlBuilder.append("?" + URLEncoder.encode("serviceKey","UTF-8") + "=JVpFRa8p0GbG8tVECHTxUPjTZ4DJAJRZkHcnrC%2Br0zNf%2FijOpKtFEiVqGI8BJIHHcyvZAIo95FHY0zOwCscOOg%3D%3D"); /*Service Key*/
urlBuilder.append("&" + URLEncoder.encode("pageNo","UTF-8") + "=" + URLEncoder.encode("1", "UTF-8")); /*페이지번호*/
urlBuilder.append("&" + URLEncoder.encode("numOfRows","UTF-8") + "=" + URLEncoder.encode("10", "UTF-8")); /*한 페이지 결과 수*/
urlBuilder.append("&" + URLEncoder.encode("frtrlNm","UTF-8") + "=" + URLEncoder.encode("가리산", "UTF-8")); /*조회할 산 이름*/
urlBuilder.append("&" + URLEncoder.encode("addrNm","UTF-8") + "=" + URLEncoder.encode("강원도 춘천시 북산면ㆍ동면, 홍천군 두촌면ㆍ화촌면", "UTF-8")); /*주소*/
urlBuilder.append("&" + URLEncoder.encode("aslAltide","UTF-8") + "=" + URLEncoder.encode("1051.0", "UTF-8")); /*고도*/
// url 객체 생성
URL url = new URL(urlBuilder.toString());
// 요청 하고자 하는 url과 통신하기 위한 Connection 객체 생성
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
// 통신을 위한 메소드
conn.setRequestMethod("GET");
// 통신을 위한 Content-type
conn.setRequestProperty("Content-type", "application/json");
// 통신 응답 코드 확인
System.out.println("Response code: " + conn.getResponseCode());
// 전달받은 데이터를 BufferedReader 객체로 저장
BufferedReader rd;
if(conn.getResponseCode() >= 200 && conn.getResponseCode() <= 300) {
rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
} else {
rd = new BufferedReader(new InputStreamReader(conn.getErrorStream()));
}
// 저장된 데이터를 라인별로 읽어서 StringBuilder 객체로 저장
StringBuilder sb = new StringBuilder();
String line;
while ((line = rd.readLine()) != null) {
sb.append(line);
}
// 객체 해제
rd.close();
conn.disconnect();
// 전달받은 데이터 확인
System.out.println(sb.toString());
이렇게 코드에 내 인증키를 넣으면 console에 json형태로 데이터가 나와야 하는데 에러는 안나지만 데이터가 나타나지 않는다