如何解析Android应用程序中的URL

时间:2013-01-24 14:50:13

标签: android xml-parsing

我想在我的示例Android应用中解析天气API的网址,但在解析网址时会出现异常。

如果我评论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");
}

以下是发生异常时日志cat的屏幕截图。 enter image description here

1 个答案:

答案 0 :(得分:2)

你确定这句话:

new InputSource(url.openStream());

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

正在回归什么?如果必须连接到Internet,请不要忘记向清单添加权限。而且你还应该在尝试解析之前测试你是否从这个url中获得了一些东西。 至少这是我对你的日志和例外的解释。