2013-01-24 3 views
0

샘플 Android 앱에서 weather API의 URL을 구문 분석하려고하지만 url을 구문 분석하는 동안 예외가 발생합니다.android 응용 프로그램에서 url 구문 분석하는 방법

내가 try 블록의 마지막 문장을 언급하는 경우 :

xr.parse(new InputSource(url.openStream()));

은 내 프로그램이 성공적으로 실행됩니다. 내 코드를 수정하여 내 URL을 구문 분석하십시오.

try { 
    URL url;   
    String queryString ="http://free.worldweatheronline.com/feed/weather.ashx?q=34.01,71.54&format=xml&num_of_days=5&key=ccad66928f081759132201"; 

    url = new URL(queryString.replace(" ", "%20")); 

    SAXParserFactory spf = SAXParserFactory.newInstance(); 
    SAXParser sp = spf.newSAXParser(); 

    XMLReader xr = sp.getXMLReader(); 

    WeatherHandler myWeatherHandler = new WeatherHandler(); 
    xr.setContentHandler(myWeatherHandler); 

    xr.parse(new InputSource(url.openStream())); 

    Log.d(TAG, "it's all right"); 
} catch (Exception e) { 
    System.out.println(e); 
    Log.d(TAG, "it's Wrong"); 
} 

다음은 예외가 발생할 경우 log cat의 스크린 샷입니다.

new InputSource(url.openStream()); 

뭔가를 반환

xr.parse(new InputSource(url.openStream())); 

에서 : enter image description here

+1

MainActivity.java의 95 행은 무엇입니까? –

+0

나는 xr.parse를 가정한다 (새로운 InputSource (url.openStream())); xr이 null 인 행 95입니다. 해당 줄에 주석을 달면 예외가 발생하지 않으므로. –

+0

xr.parse (새 InputSource (url.openStream())); 95 행 – user1703737

답변

2

당신은 확실히 라인이 있습니까? 인터넷에 연결해야하는 경우에는 매니페스트에 사용 권한을 추가하는 것을 잊지 마십시오. 그리고 파싱을 시도하기 전에 해당 URL에서 실제로 뭔가를 얻는 지 테스트해야합니다. 적어도 그것은 귀하의 로그 및 예외에 대한 제 해석입니다.

관련 문제