마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

네이버 검색 API 사용중에 getInputStream() 에서 꺼집니다. 도와주세요..

0 추천

 

 

네이버 블로그에 연예인 을 검색하여 나온 결과를 리스트뷰에 출력하는 소스를 만들고 있습니다.

자바-이클립스로 만들땐 잘 되다가, 같은 소스를 안드로이드에 돌려보려고하니까 잘 안되네요.

 

class naver_thread extends  Thread {

        public void processDocument(XmlPullParser xpp)
                throws XmlPullParserException, IOException {
            int eventType = xpp.getEventType();
            do {
                if(eventType == xpp.START_DOCUMENT) {
                    //System.out.println("Start document");
                } else if(eventType == xpp.END_DOCUMENT) {
                    //System.out.println("End document");
                } else if(eventType == xpp.START_TAG) {
                    processStartElement(xpp);
                } else if(eventType == xpp.END_TAG) {
                    processEndElement(xpp);
                } else if(eventType == xpp.TEXT) {
                    processText(xpp);
                }
                eventType = xpp.next();
            } while (eventType != xpp.END_DOCUMENT);
        }

        private String data = "";	//이건 파싱해서 array로 넣을때 번지

        @Override
        public void run() {
            // TODO Auto-generated method stub
            String urlStr = "https://openapi.naver.com/v1/search/blog.xml?query=%EC%97%B0%EC%98%88%EC%9D%B8&display=10&start=1&sort=sim";
            String naverAPI_ID = "umdx2xRIOghDo9rDCV96";
            String naverAPI_PW = "c9RnFZcI6X";
            URL url = null;
            HttpURLConnection connection = null;

            try {
                url = new URL(urlStr);
            } catch (MalformedURLException e) {
                e.printStackTrace();
            }

            try {
                connection = (HttpURLConnection) url.openConnection();
            } catch (IOException e) {
                e.printStackTrace();
            }
            connection.setRequestProperty("Content-Type", "application/xml");
            connection.setRequestProperty("X-Naver-Client-Id", naverAPI_ID);
            connection.setRequestProperty("X-Naver-Client-Secret", naverAPI_PW);

            BufferedReader rd = null;
            try {
                rd = new BufferedReader(
                        new InputStreamReader(connection.getInputStream()));
            } catch (IOException e) {
                e.printStackTrace();
            }

            try {
                XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
                factory.setNamespaceAware(true);
                XmlPullParser xpp = factory.newPullParser();

                xpp.setInput(rd);

                naver_thread myConnection = new naver_thread();
                myConnection.processDocument(xpp);

            } catch (XmlPullParserException e1) {
                e1.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
           }
        }
    }

public void processStartElement (XmlPullParser xpp)
    {
        String name = xpp.getName();
        String uri = xpp.getNamespace();
        if ("".equals (uri)) {
            //System.out.println("<" + name + ">");
            textView_naver.setText(textView_naver.getText() + "<" + name + ">" + "\n");
        } else {
            //System.out.println("<"+ uri +":" + name + ">");
            textView_naver.setText(textView_naver.getText() + "<"+ uri +":" + name + ">" + "\n");
        }
    }

    public void processEndElement (XmlPullParser xpp)
    {
        String name = xpp.getName();
        String uri = xpp.getNamespace();
        if ("".equals (uri)) {
            //System.out.println("</" + name + ">");
            textView_naver.setText(textView_naver.getText() + "</" + name + ">" + "\n");
        }
        else {
            //System.out.println("</" + uri + ":" + name + ">");
            textView_naver.setText(textView_naver.getText() + "</" + uri + ":" + name + ">" + "\n");
        }
    }

    int holderForStartAndLength[] = new int[2];

    public void processText (XmlPullParser xpp) throws XmlPullParserException
    {
        char ch[] = xpp.getTextCharacters(holderForStartAndLength);
        int start = holderForStartAndLength[0];
        int length = holderForStartAndLength[1];
        //System.out.printf("Content:");
        textView_naver.setText(textView_naver.getText() + "Content:");
        for (int i = start; i < start + length; i++) {
            switch (ch[i]) {
                case '\\':
                    //System.out.print("\\\\");
                    textView_naver.setText(textView_naver.getText() + "\\\\");
                    break;
                case '"':
                    //System.out.print("\\\"");
                    textView_naver.setText(textView_naver.getText() + "\\\"");
                    break;
                case '\n':
                    //System.out.print("\\n");
                    textView_naver.setText(textView_naver.getText() + "\\n");
                    break;
                case '\r':
                    //System.out.print("\\r");
                    textView_naver.setText(textView_naver.getText() + "\\r");
                    break;
                case '\t':
                    //System.out.print("\\t");
                    textView_naver.setText(textView_naver.getText() + "\\t");
                    break;
                default:
                    //System.out.print(ch[i]);
                    textView_naver.setText(textView_naver.getText() + "" + ch[i]);
                    break;
            }
        }
        //System.out.print("\n");
        textView_naver.setText(textView_naver.getText() + "\n");
    }

 

 

 

 

잘 부탁 드리겠습니다.

감사합니다.

쓰구리 (220 포인트) 님이 2016년 4월 11일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...