import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.SocketTimeoutException; import java.net.URL; import java.net.URLConnection; import java.util.ArrayList; import java.util.Calendar; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Properties; import net.sf.json.JSONObject; /** * 得到未来6天的天气(含今天) * @author Chewl * */ public class Weather { String Ctiyid; URLConnection connectionData; StringBuilder sb; BufferedReader br;// 读取data数据流 JSONObject jsonData; JSONObject info; static String zhuangkuang ; public Weather(String Cityid) throws IOException ,NullPointerException{ // 解析本机ip地址 this.Ctiyid = Cityid; // 连接中央气象台的API URL url = new URL("http://m.weather.com.cn/data/" + Ctiyid + ".html"); connectionData = url.openConnection(); connectionData.setConnectTimeout(10000); try { br = new BufferedReader(new InputStreamReader( connectionData.getInputStream(), "UTF-8")); sb = new StringBuilder(); String line = null; while ((line = br.readLine()) != null) sb.append(line); } catch (SocketTimeoutException e) { Client.logger.error("加载天气预报时连接超时", e); } catch (FileNotFoundException e) { Client.logger.error("加载天气预报文件出错", e); } catch (Exception e){ Client.logger.error("天气预报出现未知错误", e); } String datas = sb.toString(); jsonData = JSONObject.fromObject(datas); info = jsonData.getJSONObject("weatherinfo"); //得到1到6天的天气情况 List<Map<String,Object>> list = new ArrayList<Map<String,Object>>(); for(int i=1;i<=1;i++){ //得到未来6天的日期 Calendar cal = Calendar.getInstance(); cal.add(Calendar.DAY_OF_YEAR, i-1); Map<String,Object> map = new HashMap<String, Object>(); map.put("weather", info.getString("weather"+i).toString());//天气 map.put("temp", info.getString("temp"+i).toString());//温度 list.add(map); } //控制台打印出天气 for(int j=0;j<list.size();j++){ Map<String,Object> wMap = list.get(j); zhuangkuang = (String) wMap.get("weather") + " " + (String) wMap.get("temp"); } } protected static String haveConfig(String cityname) { Properties prop = new Properties(); InputStream in = null; String citycode = null; String bath= Weather.class.getResource("/").getPath(); try { in = new FileInputStream(bath + "/city.properties"); prop.load(in); citycode = prop.getProperty(cityname); } catch (Exception e) { } finally { try { if (in != null) in.close(); } catch (IOException e) { } } return citycode; } public static String search(String cityname){ try { String citycode = haveConfig(cityname); // new Weather("101210101"); // 101010100(北京)就是你的城市代码 new Weather(citycode); // 101010100(北京)就是你的城市代码 } catch (Exception e) { e.printStackTrace(); } return zhuangkuang ; } }
需要用到一个配置文件,里面包含各个天气的城市代码
发表评论
-
文件上传 下载 解析 相对路径
2014-12-16 16:29 2098有点坑吧,弄这么一个简单的东西弄了一天多,身边还有大神指导着, ... -
发送邮件
2014-10-15 11:29 663import org.apache.commons.m ... -
Enum用法
2014-08-06 10:27 800以前的时候知道enum,但 ... -
红黑树
2014-07-24 13:51 617红黑树 红黑树是一种自平衡二叉查找树,是在计算机科学中用到的 ... -
Java中的instanceof关键字
2014-07-21 11:14 441Java中的instanceof关键字 [size=larg ... -
Comparable接口
2014-07-21 11:01 496因为在学红黑树的时候用到了Comparable接口,故此学习一 ... -
二叉查找树
2014-07-15 10:57 601二叉排序树(Binary Sort Tree)又称二叉查找树( ... -
二叉树的三种遍历
2014-07-10 11:28 608前序遍历(DLR) 前序 ... -
Java中如何写代码实现无标题无边框的窗体能够用鼠标拖动改变窗口大小
2014-01-23 17:16 1556import java.awt.*; import java ... -
Swing基础
2014-01-10 10:22 415JFrame: frame = new JFrame(); ... -
游戏音效素材大全下载 - 3000首高清无损-按分类整理
2014-01-09 18:03 481因为我看到国外很多素材,但是国内不多,我希望来做好这个事情。 ... -
Swing 键盘练习
2014-01-09 17:59 587在swing界面中写一个键盘,使用前记得放置背景图片 imp ... -
JAVA的Socket的聊天器
2014-01-09 11:06 466这是刚开始学习java网络编程的时候做的一个东东,,局域网聊天 ... -
驱动打印
2013-12-27 15:16 647java驱动打印代码: PrintTest.print(pr ... -
java程序打包
2013-12-27 15:17 515打包一般分为两种,一种是B/S架构打包,一种是C/S打包,大同 ... -
读取文件夹下的所有文件
2013-12-20 13:19 470文章来源:http://www.blogjava.net/ba ... -
JMF播放AVI格式的视频
2013-12-02 10:26 737public class Conver { publ ... -
JMF视频播放器
2013-12-02 10:24 1131import java.awt.BorderLayout; ...
相关推荐
在实现天气预报功能的例子中,AJAX使得网页可以在不刷新的情况下获取并更新天气信息,提升了用户的浏览体验。随着前端技术的发展,AJAX已经成为现代Web开发不可或缺的一部分,结合其他先进技术如React、Vue等,可以...
在本例中,我们关注的是使用Web Service实现天气预报功能,这涉及到SOAP(Simple Object Access Protocol)协议的运用。 SOAP是用于交换结构化信息的协议,它基于XML(Extensible Markup Language)格式,使得数据...
在Android平台上实现天气预报功能是一项常见的任务,尤其对于开发本地生活服务类应用的开发者来说更是必不可少。本教程将深入探讨如何利用Android技术结合百度地图API来实现这一功能。首先,我们要理解Android应用的...
安卓实现天气预报功能,只需传入城市名字即可
本文实例为大家分享了微信小程序实现天气预报功能的具体代码,供大家参考,具体内容如下 这个案例是仿UC中天气界面做的中间也有点出入,预留了显示当前城市名字和刷新图标的位置,自己可以写下,也可以添加搜索城市...
标题提到的“Yahoo的天气RSS实现天气预报功能”涉及到RSS(Really Simple Syndication)技术。RSS是一种内容发布格式,允许用户订阅和获取网站更新,如新闻、博客或天气预报等。Yahoo提供了一个公开的天气RSS feed,...
Spring Boot项目:使用第三方天气API接口实现天气预报功能;使用redis缓存数据库进行数据缓存 接口示例:http://t.weather.sojson.com/api/weather/city/101010100
给android安好者一个例子,实现了android 中的天气预报功能,
5. **错误处理**:在实现天气预报功能时,需要考虑网络异常、API限制、数据解析错误等情况。可以使用try-catch块来捕获并处理异常,提供友好的错误提示给用户。 6. **异步编程**:由于网络请求是耗时操作,应使用...
- 要实现天气预报功能,通常需要接入第三方气象API,如OpenWeatherMap、AccuWeather、WorldWeatherOnline等。 - 这些API提供了城市、邮政编码、经纬度等查询方式,返回的天气信息包括温度、湿度、风速、天气状况、...
在提供的压缩包“Android定位项目”中,可能包含了实现天气预报功能的完整代码示例,包括定位服务的使用。Android定位服务通常结合Google Play服务的`FusedLocationProviderClient`,它可以获取手机的GPS、Wi-Fi和...
在本文中,我们将深入探讨如何基于Android平台利用WebService技术实现天气预报功能。首先,我们要理解Android是Google开发的一款开源移动操作系统,广泛应用于智能手机和平板电脑。而WebService是一种通过互联网交换...
本教程将深入探讨如何利用WebService来实现天气预报功能。 首先,我们需要理解WebService的基本原理。WebService是一种通过HTTP协议传递XML数据的服务。它使用WSDL(Web Service Description Language)定义服务...
Android Studio实现天气预报APP系统源码(也可做Android本科毕业设计Android Studio实现天气预报APP系统源码(也可做Android本科毕业设计Android Studio实现天气预报APP系统源码(也可做Android本科毕业设计Android ...
在本文中,我们将探讨如何使用AngularJS框架实现天气预报功能,这一功能能够帮助用户了解不同城市的天气情况。AngularJS是一个由Google维护的开源前端JavaScript框架,适用于构建动态Web应用。它能够让开发者使用...
本文使用Asp.Net (C#)调用互联网上公开的WebServices(http://www.webxml.com.cn/WebServices/WeatherWebService.asmx)来实现天气预报,该天气预报 Web 服务,数据来源于中国气象局http://www.cma.gov.cn/,数据每2.5...
在Android平台上,实现天气预报功能通常涉及到多个技术层面和组件的整合。首先,我们要了解`Android Widget`,这是Android系统提供的一种小型应用组件,可以直接在用户的主屏幕上显示实时信息,如时间、天气、新闻等...
在本案例中,我们将探讨如何使用Web服务来实现天气预报功能。天气预报Web服务通常涉及提供当前天气状况、未来几天的预测以及相关气象信息。 一、Web服务的基本概念 1. Web服务是通过HTTP协议传输数据的服务,可以被...
为了实现天气预报功能,ESP8266需要连接到网络并获取天气API的数据。常见的免费API有OpenWeatherMap或Weather Underground,它们提供实时和预测天气信息的JSON格式数据。通过HTTP GET请求,ESP8266可以获取这些数据...