Android中调用天气预报
16lz
2021-01-23
下面我介绍比较简单的两种方式来完成在Android中调用天气预报。
1.
Weather weather = new Weather();String urlStr = "http://flash.weather.com.cn/wmaps/xml/"+cityId+".xml";try { url = new URL(urlStr); urlConnection = (HttpURLConnection)url.openConnection(); InputStream is = urlConnection.getInputStream(); parser = Xml.newPullParser(); parser.setInput(is,"UTF-8"); while(parser.getEventType()!=XmlPullParser.END_DOCUMENT){ if(parser.getEventType() == XmlPullParser.START_TAG){ String name = parser.getName(); if("city".equals(name)){ String cn = parser.getAttributeValue(2); if(cn.contains(cityName)){ String weatherStr = parser.getAttributeValue(8); weather.setWeather(weatherStr); } } } parser.next(); }} catch (IOException e) { e.printStackTrace();} catch (XmlPullParserException e) { e.printStackTrace();}
2.
Weather[] weather = new Weather[4];//定义取三天的天气//http://m.weather.com.cn/data/101070101.html//String URL = "http://m.weather.com.cn/data/"+CityId+".html";//http://m.weather.com.cn/atad/101070101.htmlString URL="http://m.weather.com.cn/atad/"+cityId+".html";String Weather_Result="";HttpGet httpRequest = new HttpGet(URL);try { HttpClient httpClient = new DefaultHttpClient(); HttpResponse httpResponse = httpClient.execute(httpRequest); if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { Weather_Result = EntityUtils.toString(httpResponse.getEntity()); }} catch (Exception e) { return weather;}if(null!=Weather_Result&&!"".equals(Weather_Result)){ try { JSONObject JO = new JSONObject(Weather_Result).getJSONObject("weatherinfo"); for (int i = 0; i < weather.length; i++) { weather[i] = new Weather(); weather[i].setCityName(JO.getString("city")); weather[i].setCurrentDate("date_y"); weather[i].setWeek(JO.getString("week")); weather[i].setTemp(JO.getString("temp"+(i+1))); weather[i].setWind(JO.getString("wind"+(i+1))); weather[i].setWeather(JO.getString("weather"+(i+1))); } } catch (JSONException e) { weather = new Weather[4]; return weather; }}
更多相关文章
- Android的自定义长按
- Android之TabHost重定义
- 自定义圆角button上下间距问题
- Android Wifi模块相关常量定义.
- Android 自定义ProgressBar--进度自己设置图片
- Android_自定义View拖拽重绘
- android 自定义具有反弹效果的ScrollView
- android自定义对话框工具类