24.01.21

서린·2024년 1월 21일

혼자개발

목록 보기
23/82

며칠 동안 서치를 해보면서 얻은 내용은 샘플코드와 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형태로 데이터가 나와야 하는데 에러는 안나지만 데이터가 나타나지 않는다

0개의 댓글