0

我想在我的示例 Android 应用程序中解析天气 API 的 URL,但在解析 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");
}

这是发生异常时的日志猫的屏幕截图。 在此处输入图像描述

4

1 回答 1

2

你确定这条线:

new InputSource(url.openStream());

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

正在退货吗?如果您必须连接到 Internet,请不要忘记将权限添加到清单中。而且您还应该在尝试解析之前测试您是否真的从该 url 获得了一些东西。至少这是我对您的日志和异常的解释。

于 2013-01-24T18:42:24.423 回答