`
ssxxjjii
  • 浏览: 950711 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用YahooService实现天气预报

阅读更多

天气预报是非常有用的服务,如果能在网站上集成天气预报,能极大地方便用户查询。

  寻遍了国内所有的气象站点,没找见提供Web服务的,太小气了,只能去国外找。NOAA(www.weather.gov)提供一个Web服务,但是死活连不上服务器,估计被屏蔽了,其他提供全球天气预报的有www.weather.com和yahoo,

  不过weather.com的服务太麻烦,还需要注册,相比之下,yahoo的天气服务既简单又快速,只需一个http请求,然后解析返回的XML即可获得天气预报。

  以北京为例,在weather.yahoo.com查找北京的城市代码为CHXX0008,对应的URL为:

  http://xml.weather.yahoo.com/forecastrss?u=c&p=CHXX0008

  然后,通过SAX解析返回的XML:

  URL url = new URL("http://xml.weather.yahoo.com/forecastrss?u=c&p=CHXX0008");

  InputStream input = url.openStream();

  SAXParserFactory factory = SAXParserFactory.newInstance();

  factory.setNamespaceAware(false);

  SAXParser parser = factory.newSAXParser();

  parser.parse(input, new YahooHandler());

  自己定义一个YahooHandler来响应SAX事件:

  /**

  * For more information, please visit: http://www.crackj2ee.com

  * Author: Liao Xuefeng

  */

  public class YahooHandler extends DefaultHandler {

  public void startElement(String uri, String localName, String qName, Attributes attributes)

  throws SAXException {

   if("yweather:condition".equals(qName)) {

   String s_date = attributes.getValue(3);

   try {

   Date publish = new SimpleDateFormat("EEE, dd MMM yyyy hh:mm a z",

  Locale.US).parse(s_date);

   //System.out.println("Publish: " + publish.toString());

   }

   catch (Exception e) {

   e.printStackTrace();

   throw new SAXException("Cannot parse date: " + s_date);

   }

   }

   else if("yweather:forecast".equals(qName)) {

   String s_date = attributes.getValue(1);

   Date date = null;

   try {

   date = new SimpleDateFormat("dd MMM yyyy", Locale.US).parse(s_date);

   }

   catch (Exception e) {

   e.printStackTrace();

   throw new SAXException("Cannot parse date: " + s_date);

   }

   int low = Integer.parseInt(attributes.getValue(2));

   int high = Integer.parseInt(attributes.getValue(3));

   String text = attributes.getValue(4);

   int code = Integer.parseInt(attributes.getValue(5));

   System.out.println("Weather: "+ text + ", low=" + low + ", high=" + high);

   }

   super.startElement(uri, localName, qName, attributes);

   }

  }

  运行结果:

  Weather: Partly Cloudy, low=7, high=16

  Weather: Sunny, low=7, high=20

分享到:
评论

相关推荐

    ASP.NET程序中使用Yahoo的天气RSS实现天气预报功能源代码

    标题提到的“Yahoo的天气RSS实现天气预报功能”涉及到RSS(Really Simple Syndication)技术。RSS是一种内容发布格式,允许用户订阅和获取网站更新,如新闻、博客或天气预报等。Yahoo提供了一个公开的天气RSS feed,...

    java实现天气预报(解释+源代码)

    本文将详细介绍如何使用Java语言实现一个简易的天气预报客户端,该客户端能够通过Yahoo提供的天气预报XML接口获取并显示相关信息。 #### 二、Yahoo天气预报XML接口简介 Yahoo提供了一个免费的天气预报信息服务,...

    weather_yahoo.rar_Yahoo weather_csharp 天气预报_weather_天气_天气预报代码

    【标题】"Yahoo天气预报_csharp 天气预报_weather_天气_天气预报代码"涉及到的知识点主要集中在使用C#编程语言来实现一个基于Yahoo Weather API的天气查询应用。这个项目可能是一个小型的实用程序,允许用户获取全球...

    ASP.NET的实时天气及24小时天气预报(C#) 包含原代码

    在这个示例中,开发者使用C#语言编写了一个简单的网页,可以从Yahoo天气服务获取特定城市的天气信息。以下是实现这个功能的关键知识点: 1. **HTTP请求**: - 使用`System.Net.WebClient`类或`System.Net....

    英文版天气预报C#

    Yahoo Weather API提供了全球各地的天气信息,包括温度、湿度、风速、天气状况等,开发者可以通过调用这个API,结合C#的编程能力,实现天气预报的显示。 总的来说,这个项目是一个综合性的C#开发练习,涵盖了网络...

    java获取yahoo天气预报代码

    在`WeatherTest`这个文件中,可能包含了上述代码的实现,用于测试和展示如何在Java中获取并解析Yahoo天气预报。这样的代码对学习网络编程、XML解析以及API调用等技能非常有帮助,同时也是构建实用应用程序的一个基础...

    yahoo 天气预报 java API

    下面将详细介绍Yahoo天气预报API的主要功能、使用方法以及相关的编程知识。 1. **API接口**: Yahoo天气预报API通常提供一个基础URL,如`https://query.yahooapis.com/v1/public/yql`,开发者可以通过向这个URL...

    yahoo天气预报

    在实现Yahoo天气预报时,开发者需要掌握如何构造请求URL,添加必要的参数(如城市代码),以及如何处理返回的数据。 再者,**HTTP请求和响应**是互联网通信的基础。在这个项目中,开发者可能使用了诸如Python的`...

    yahoo.rar_weather yahoo_天气_天气预报 _雅虎天气_雅虎天气获取

    标签"weather_yahoo"直接指出了主题,"天气"和"天气预报"进一步明确了我们要获取的数据类型,而"雅虎天气"和"雅虎天气获取"则强调了使用的具体服务。这两个压缩文件"Project_exe.zip"和"Project_src.zip"可能包含了...

    在asp.ne中t使用WebService获取天气预报信息的例子

    - Yahoo Weather(https://developer.yahoo.com/weather/):提供全球天气数据,包括天气图标、温度、湿度等,适合个人和商业使用。 4. **处理返回的数据** - 使用.NET内置的XML或JSON解析库,如`System.Xml.Linq...

    天气预报程序

    为了实现天气预报程序,开发者需要了解以下几个关键步骤: 1. **API请求**:构建URL,包括API的基础地址、你的API密钥、以及查询参数(如城市名称或woeid,雅虎特有的地理位置标识符)。 2. **发送请求**:使用HTTP...

    JAVA天气预报详解

    首先,Yahoo天气预报服务为开发者提供了丰富的天气信息数据,这些数据可以通过特定格式的XML文档获取。开发者可以直接使用URL访问这些数据,并通过指定的参数来获取不同城市和不同温度单位的信息。 在文档中,提到...

    ASP.NET的实时天气及24小时天气预报

    根据给定的信息,本文将详细解释ASP.NET中的实时天气及24小时天气预报功能的实现原理,以及如何通过修改URL来获取不同城市的天气情况。 ### 一、ASP.NET概述 ASP.NET是Microsoft开发的一种用于创建动态网页的应用...

    Yahoo!天气预报代码提供下载

    功能: 可以获取Yahoo!每日更新的天气预报,图文并茂, 可以很方便地插入到现有的ASP页面中 要求: 支持ASP,Access和MSXML2.XMLHTTP组件的服务器/虚拟主机 (大多数服务器支持MSXML2.XMLHTTP组件)

    C#天气预报源代码

    【C#天气预报源代码】项目是一个利用C#编程语言实现的应用程序,它能够通过连接Yahoo的天气API获取中国各大城市的实时天气预报信息,并在用户界面中展示出来。这个项目对于学习C#网络编程、XML解析以及GUI设计具有很...

    ASP.net(c#)打造24小时天气预报及实时天气

     注意仅适用于获得yahoo上的天气预报 GetWeather.aspx ———————————– 代码如下:<%@ Page language=”c#” Codebehind=”GetWeather.aspx.cs” AutoEventWireup=”false” I

    基于云计算的天气预报系统实现.doc

    【基于云计算的天气预报系统实现】的文档主要探讨了如何利用云计算技术构建一个天气预报系统,结合了GoogleMap作为信息集成的平台,并涉及到区块链技术在其中可能的应用。以下是该系统的详细解析: 1. **云计算的...

    中国城市代码天气预报(yahoo RSS)

    当用到雅虎的Rss天气服务时会用到。 阿巴嘎旗  CHXX0243  阿城 CHXX0001  爱辉 CHXX0174  阿合奇 CHXX0210  阿拉尔 CHXX0212  阿勒泰 CHXX0196  安达  CHXX0187  敖汉旗 CHXX0002  安康  CHXX0394  安宁...

    使用XMLHTTP获取天气预报

    在本文中,我们将详细讨论如何利用 XMLHTTP 获取天气预报数据,并将其展示在网页上。 首先,创建 XMLHTTP 对象是实现网络通信的第一步。在 JavaScript 中,我们通常使用 `ActiveXObject` 来创建,例如: ```...

    天气预报,Android资源

    "android高仿天气预报功能"指的是该应用可能模仿了已有的知名天气应用的界面和功能,例如模仿了Yahoo Weather或AccuWeather的设计。这涉及到UI/UX设计原则,以及使用Android的动画和过渡效果来提升用户体验。 在...

Global site tag (gtag.js) - Google Analytics