我想在我的示例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的屏幕截图。
答案 0 :(得分:2)
你确定这句话:
new InputSource(url.openStream());
这
xr.parse(new InputSource(url.openStream()));
正在回归什么?如果必须连接到Internet,请不要忘记向清单添加权限。而且你还应该在尝试解析之前测试你是否从这个url中获得了一些东西。 至少这是我对你的日志和例外的解释。