티스토리 뷰

https://www.data.go.kr/data/15056971/openapi.do

 

과학기술정보통신부 우정사업본부_우편번호 정보조회

검색조건에 의해 도로명주소 및 지번주소 상세검색 리스트를 조회 하는 새우편번호 정보조회 기능의 OPEN API 서비스 입니다. ㅇ 출력하는 항목(사용자가 응답 받게 되는 데이터) : 우편번호, 도로

www.data.go.kr

자세한 내용은 위의 url 참고하면 된다.

위의 내용을 참고하면 xml로 결과가 리턴되는데 그 xml에서 우편번호만 xml 파싱해서 zipCode 엘리먼트의 값만 뽑아오는 소스.

StringBuilder urlBuilder = new StringBuilder("http://openapi.epost.go.kr/postal/retrieveNewAdressAreaCdSearchAllService/retrieveNewAdressAreaCdSearchAllService/getNewAddressListAreaCdSearchAll"); /*URL*/
        urlBuilder.append("?" + URLEncoder.encode("serviceKey","UTF-8") + "=YOUR_SERVICE_KEY"); /*Service Key*/
        urlBuilder.append("&" + URLEncoder.encode("srchwrd","UTF-8") + "=" + URLEncoder.encode("서울특별시 강남구 역삼동 825", "UTF-8")); //검색어
        urlBuilder.append("&" + URLEncoder.encode("countPerPage","UTF-8") + "=" + URLEncoder.encode("10", "UTF-8")); 
        urlBuilder.append("&" + URLEncoder.encode("currentPage","UTF-8") + "=" + URLEncoder.encode("1", "UTF-8")); 
        URL url = new URL(urlBuilder.toString());
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setRequestMethod("GET");
        conn.setRequestProperty("Content-type", "application/json");
        System.out.println("Response code: " + conn.getResponseCode());
        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 sb = new StringBuilder();
        String line;
        while ((line = rd.readLine()) != null) {
            sb.append(line);
        }
        rd.close();
        conn.disconnect();
        String xml=sb.toString();
        System.out.println(xml);
        
    	DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    	DocumentBuilder documentBuilder = factory.newDocumentBuilder();

    	StringReader sr=new StringReader(xml);
    	Document doc=documentBuilder.parse(new InputSource(sr));
    	
    	Element element = doc.getDocumentElement();
    	NodeList items = element.getElementsByTagName("zipNo");
    	
    	int n = items.getLength();
    	System.out.println(n);
    	
    	for (int i = 0; i < n; i++) {
    		HashMap<String, Object> map = new HashMap<>();
    		Node item = items.item(i);
    		Node text = item.getFirstChild();
    		String nodeName=item.getNodeName();
    		String itemValue = text.getNodeValue();
    		System.out.println(itemValue);
    	}

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함