`
longgangbai
  • 浏览: 7332500 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java使用YoHoo的天气预报

阅读更多

     今天比较闲,可以自由的学习了,看到公司以前做项目中使用天气预报使用新浪的天气预报,解析过程不仅(ˇˍˇ) 想~大哭.%>_<%........

    为客户提供一个天气预报的服务就那么难吗??

   于是我在网上搜索终于找到一个比较好的天气预报?yohoo的天气预报,并测试一下可以使用!基本可以满足可以的需求吧?

   思路如下:根据查询天气预报的外部的路径输入自己查询的参数这样既可窃取别人网站的果实,怎么样O(∩_∩)O哈哈哈~。

 

 

天气预报是非常有用的服务,如果能在网站上集成天气预报,能极大地方便用户查询。
寻遍了国内所有的气象站点,没找见提供Web服务的,太小气了,只能去国外找。www.weather.gov提供一个Web服务,但是死活连不上服务器,估计被屏蔽了,其他提供全球天气预报的有www.weather.com和yahoo,

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

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

 

package com.unutrip.weather.ws.xml;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

/**
 * 解析天气预报返回的信息(此处由于xml比较小采用DOm解析,^_^)
 *
 * @author longgangbai
 *
 */
public class YahooHandler extends DefaultHandler {

 public void startDocument() throws SAXException {
  // no op
 }

 public void endDocument() throws SAXException {
  // no op
 }

 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);
   } 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);
 }

 public void endElement(String uri, String localName, String qName)
   throws SAXException {
 }
}

 

package com.unutrip.weather.ws;

import java.io.InputStream;
import java.net.URL;

import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import com.unutrip.weather.ws.xml.YahooHandler;
/**
 * 调用外网的地址的提供的服务信息
 * @author longgangbai
 *
 */
public class YahooWeather {
 public static void main(String[] args) {
  URL url;
  try {
   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());
  } catch (Exception e) {
   System.out.println(e);
  }

 }
}

 

分享到:
评论

相关推荐

    java获取yahoo天气预报代码

    在Java编程领域,获取Yahoo天气预报的代码是一个实用的示例,它涉及到网络请求、XML解析和API调用等技术。Yahoo提供了公开的天气API,允许开发者通过HTTP请求获取特定地区的天气信息。以下是对这个主题的详细解释: ...

    yahoo 天气预报 java API

    Yahoo天气预报Java API是开发人员可以利用的工具,它允许应用程序与Yahoo的天气服务进行交互,获取并展示全球各地的天气信息。这个API基于HTTP协议,使用RESTful设计原则,使得开发者可以方便地通过发送HTTP请求来...

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

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

    java做的天气预报图形界面程序

    至于“雅虎天气预报”,开发者很可能使用了雅虎的开放API来获取天气数据。雅虎天气API允许开发者通过发送HTTP请求获取特定地点的天气信息,如温度、湿度、风速等。这些数据通常以JSON格式返回,然后在Java程序中解析...

    JAVA天气预报详解

    在本技术文档中,介绍了如何利用雅虎天气预报接口开发JAVA版的天气预报程序。文档详细阐述了整个程序的开发过程、程序界面设计以及如何解析天气预报信息。 首先,Yahoo天气预报服务为开发者提供了丰富的天气信息...

    雅虎天气预报WIDGET

    雅虎天气预报WIDGET是一款专为Android手机设计的桌面插件,它允许用户方便地查看全球各大城市的实时天气信息。这个WIDGET的核心功能是搜索和显示天气预报,为用户提供便捷的气象查询服务。通过集成雅虎的天气API,该...

    Android天气预报实例

    【Android天气预报实例】是一个基于Java编程语言和Android操作系统开发的应用程序示例,它利用了雅虎提供的天气API来获取实时的气象数据。这个实例展示了如何在Android平台上构建一个功能完善的天气应用,其中包括...

    基于j2me的在线天气预报程序

    **基于J2ME的在线天气预报程序** J2ME,全称Java 2 Platform, Micro Edition,是Java平台的一个子集,主要用于嵌入式设备和移动设备上的应用程序开发,如手机、PDA等。它提供了丰富的API,可以实现多媒体、网络通信...

    基于Android平台的天气预报短信服务系统课程设计报告书.doc

    - **后台服务**: 定期从Yahoo获取最新的天气预报信息并存储。 - **短信服务**: 用户可通过发送含有特定关键词的短信来获取存储的天气信息。 - **历史记录**: 记录并展示所有回复过的天气查询短信,允许用户查看或...

    yahoo_weather_demo

    【描述】:“用Yahoo天气API做为接口开发的天气预报demo” 描述表明,该项目主要功能是天气预报,通过调用Yahoo天气API获取数据,并将这些信息以用户友好的方式展示出来。通常,这样的demo会包含搜索城市、显示当前...

    JAVA上百实例源码以及开源项目源代码

    Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板 使用Java语言编写的一款...

    高仿雅虎天气应用.zip

    雅虎天气应用是一款知名的手机应用,提供实时天气信息、预报、以及与当地环境相关的图片。"高仿"意味着这个应用在设计和功能上可能试图复制雅虎天气的主要特点,但可能并未获得官方授权。 【描述】"高仿雅虎天气...

    jquery和雅虎的yql服务实现天气预报服务示例

    目前最权威的天气预报数据是中国天气网(http://www.weather.com.cn/),因为这个是官方提供的气象数据,除了商业的增值服务外,还提供了免费的以JSON数据格式返回的气象数据,以查看杭州的天气数据为例,可以输入...

    Vaanilai:使用雅虎天气 API 的 Android 天气应用

    它巧妙地利用了雅虎天气API来提供用户友好的界面,显示当前和未来的天气状况。这款应用的名字“Vaanilai”在泰米尔语中意为“天气”,这表明其功能与名称完美契合,为泰米尔语地区的用户提供便利。 雅虎天气API是一...

    简洁天气项目源码

    主界面参考了http://javaapk.com/source/491.html,不过代码基本都是从头写,或者重构了,天气源是yahoo的 项目地址https://github.com/MagicDevTeam/MagicWeather

    威震天气源代码

    标签中的"yahoo 天气"暗示了开发者可能参考了雅虎天气的设计和功能,这可能包括天气预报、实时天气信息、地理位置定位等功能。实现这些功能可能需要用到Android的位置API(如FusedLocationProviderClient)来获取...

    niaagara天气模块非常好用

    这使得开发者无需深入了解复杂的天气预报算法,即可快速地在网页上展示天气信息。 2. **实时更新**:由于依赖于权威的气象服务提供商,尼亚加拉天气模块可以提供实时的温度、湿度、风向风速等气象参数,确保用户...

    面向 Java 开发人员的 Ajax 探索 Google Web Toolkit

    WeatherReporter是一个基于GWT的应用实例,用于展示天气预报信息。该应用的GUI设计简洁明了,主要包含一个输入框用于接收邮政编码,以及一个按钮用于触发查询请求。当用户点击“提交”按钮时,应用会调用Yahoo! ...

    Android应用源码天气项目源码

    本项目是一个基于Android平台的高仿雅虎天气的应用源码,旨在帮助开发者了解和学习如何在Android上构建一个功能丰富的天气应用。通过分析这个源码,你可以深入理解Android开发中的多个重要知识点,包括UI设计、网络...

    App_PrevisaoDoTempo:Android应用程序使用Yahoo Weather API演示HTTP连接

    App_PrevisaoDoTempo是一款基于Android平台的应用程序,它展示了如何通过HTTP连接来与Yahoo Weather API进行交互,以获取并显示天气预报信息。这个项目对于开发者来说,是一个很好的学习资源,特别是那些想要了解...

Global site tag (gtag.js) - Google Analytics