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

안드로이드 스튜디오 API활용 에러 질문드립니다.

0 추천

공공API를 가져와서 버스노선 ID를 조회하는 예제를 하고 있는데요

공공API 승인받고 인증키도 제대로 입력했는데 

unexpected token (position : TEXT 다운로드 실패@1.8 in java.io.StringReader@421eaefo)

이런 에러가 앱을 실행한 화면에 뜹니다. 자바스크립트로 오류가 뜨는게 아니라 그냥 메인 화면에 저렇게 떠요!!!

자바파일에 문제가 있는 것 같아 소스 복사해놓겠습니다.

package com.example.asus.busrouteid;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.os.AsyncTask;
import android.widget.TextView;

import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserFactory;

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StringReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;

public class MainActivity extends AppCompatActivity {

    TextView tv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        tv = (TextView)findViewById(R.id.date);

        String serviceUrl = "http://ws.bus.go,kr/api/rest/busRouteInfo/getBusRouteList";

        String serviceKey = "vgP8Op.....%3D";
        String strSrch = "406";
        String strUrl = serviceUrl+"?ServiceKey="+serviceKey+
                "&strSrch="+strSrch;
        new DownloadWebpageTask().execute(strUrl);
    }
    private class DownloadWebpageTask extends AsyncTask<String, Void, String>{

        @Override
        protected String doInBackground(String...urls){
            try{
                return(String)downloadUrl((String)urls[0]);
            } catch (IOException e) {
                return "다운로드 실패";
            }
        }
        protected void onPostExecute(String result){
            try {
                XmlPullParserFactory factory =
                        XmlPullParserFactory.newInstance();
                factory.setNamespaceAware(true);
                XmlPullParser xpp = factory.newPullParser();

                xpp.setInput(new StringReader(result));
                int eventType = xpp.getEventType();

                String headerCd = "";
                String busRouteId = "";
                String busRouteNm = "";

                boolean bSet_headerCd = false;
                boolean bSet_busRouteId = false;
                boolean bSet_busRouteNm = false;

                while (eventType != XmlPullParser.END_DOCUMENT){
                    if(eventType == XmlPullParser.START_DOCUMENT){
                        ;
                    } else if(eventType == XmlPullParser.START_TAG){
                        String tag_name = xpp.getName();
                        if (tag_name.equals("headerCd"))
                            bSet_headerCd = true;
                        if (tag_name.equals("busRouteId"))
                            bSet_busRouteId = true;
                        if (tag_name.equals("busRouteNm"))
                            bSet_busRouteNm = true;
                    }else if (eventType == XmlPullParser.TEXT){
                        if (bSet_headerCd){
                            headerCd = xpp.getText();
                            tv.append("headerCd:" + headerCd + "\n");
                            bSet_headerCd = false;
                        }
                        if (headerCd.equals("0")){
                            if (bSet_busRouteId){
                                busRouteId = xpp.getText();
                                tv.append("busRouteId:" + busRouteId + "\n");
                                bSet_busRouteId = false;
                            }
                            if (bSet_busRouteNm){
                                busRouteNm = xpp.getText();
                                tv.append("busRouteNm:" + busRouteNm + "\n");
                                bSet_busRouteNm = false;
                            }
                        }
                    } else if (eventType == XmlPullParser.END_TAG){
                        ;
                    }
                    eventType = xpp.next();
                }
            }catch (Exception e){
                tv.setText(e.getMessage());
            }
        }
        private String downloadUrl(String myurl) throws IOException{
            HttpURLConnection conn = null;
            try{
                URL url = new URL(myurl);
                conn =(HttpURLConnection) url.openConnection();
                BufferedInputStream buf = new BufferedInputStream(
                        conn.getInputStream());
                BufferedReader bufreader = new BufferedReader(
                        new InputStreamReader(buf, "utf-8"));
                String line = null;
                String page = "";
                while ((line = bufreader.readLine()) != null){
                    page += line;
                }

                return page;
            } finally {
                conn.disconnect();
            }
        }
    }
}

cloud 님이 2017년 10월 13일 질문

답변 달기

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