안녕하세요 알통몬입니다. 공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!! 포스팅 내용이 찾아주신 분들께 도움이 되길 바라며 더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^
|
간단하게 포스팅합니다.
안드로이드에서 네이버 오픈 API 사용할 때
네이버 오픈 API의 경우 request를 보내고 request에 대한 응답을 XML로 보내주는데요.
안드로이드에서 받은 XML형식의 데이터를 파싱하는 방법입니다.
String location = URLEncoder.encode(searchWord, "UTF-8");
String sendQuery = "https://openapi.naver.com/v1/search/local.xml?query=" + location + "&display=" + DISPLAY_COUNT + "&start=" + START_COUNT; URL url = new URL(sendQuery); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod(SEND_TYPE); conn.setRequestProperty("Content-Type", "application/xml"); conn.setRequestProperty("X-Naver-Client-Id", CLIENT_ID); //발급받은ID conn.setRequestProperty("X-Naver-Client-Secret", CLIENT_PASSWORD);//발급받은PW XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); XmlPullParser xpp = factory.newPullParser(); xpp.setInput(conn.getInputStream(), null); String tag; xpp.next(); int eventType = xpp.getEventType(); while (eventType != XmlPullParser.END_DOCUMENT) { switch (eventType) { case XmlPullParser.START_DOCUMENT: break; case XmlPullParser.START_TAG: tag = xpp.getName(); //테그 이름 얻어오기 if (tag.equals("item")) ;// 첫번째 검색결과 else if (tag.equals("title")) { xpp.next(); if (xpp.getText().contains("Naver Open API")) { break; } else { parkName = xpp.getText().replace("<b>", "").replace("</b>", ""); } } else if (tag.equals("address")) { xpp.next(); parkAddress = xpp.getText(); } else if (tag.equals("telephone")) { xpp.next(); parkTel = xpp.getText(); } else if (tag.equals("mapx")) { // getmapx value xpp.next(); xValue = Integer.parseInt(xpp.getText()); } else if (tag.equals("mapy")) { // getmapy valye xpp.next(); yValue = Integer.parseInt(xpp.getText()); } break; case XmlPullParser.TEXT: break; case XmlPullParser.END_TAG: tag = xpp.getName(); //테그 이름 얻어오기 if (tag.equals("item")) break; } eventType = xpp.next(); } |
이상입니다.