网上有很多通过iframe的形式来显示其他网站上的天气预报,这样有一点不好,没有自己的风格,如果通过类来读取这些天气信息,然后我们就可以在页面上构造自己想要的效果和风格。
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.io.*;
import org.w3c.dom.*;
import javax.xml.parsers.*;
public class GetWeather {
public String getweather(String city)
{
URL ur;
try {
ur = new URL("http://www.google.com/ig/api?hl=zh_cn&weather="+city);
InputStream instr = ur.openStream();
String s, str;
BufferedReader in = new BufferedReader(new InputStreamReader(instr));
StringBuffer sb = new StringBuffer();
Writer out=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("weather.txt"),"utf-8"));
while ((s = in.readLine()) != null) {
sb.append(s);
}
str = new String(sb);
out.write(str);
out.close();
in.close();
} catch (Exception e1) {
e1.printStackTrace();
}
File f=new File("weather.txt");
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
String str=null;
try{
DocumentBuilder builder=factory.newDocumentBuilder();
Document doc = builder.parse(f);
NodeList nl =(NodeList) doc.getElementsByTagName("forecast_conditions");
NodeList n2=nl.item(0).getChildNodes();
str=n2.item(4).getAttributes().item(0).getNodeValue()+","+n2.item(1).getAttributes().item(0).getNodeValue()+"℃-"+n2.item(2).getAttributes().item(0).getNodeValue()+"℃";
}catch(Exception e)
{
e.printStackTrace();
}
return str;
}
public static void main(String [] arg)
{
//注意weather那写入城市的拼音转化一下就行打开之后是XML格式的然后再提取
System.out.println(new GetWeather().getweather("zhuzhou"));//查询株洲的天气信息
}
}
XML文件如下,这文件是从http://www.google.com/ig读取到的
<?xml version="1.0"?>
<xml_api_reply version="1">
<weather module_id="0" tab_id="0" mobile_row="0" mobile_zipped="1" row="0" section="0" >
<forecast_information>
<city data="Zhuzhou, Hunan"/>
<postal_code data="zhuzhou"/>
<latitude_e6 data=""/>
<longitude_e6 data=""/>
<forecast_date data="2009-10-22"/>
<current_date_time data="2009-10-22 23:00:00 +0000"/>
<unit_system data="SI"/>
</forecast_information>
<current_conditions>
<condition data="多云"/>
<temp_f data="72"/>
<temp_c data="22"/>
<humidity data="湿度: 47%"/>
<icon data="/ig/images/weather/mostly_cloudy.gif"/>
<wind_condition data="风向: 西、风速:2 米/秒"/>
</current_conditions>
<forecast_conditions>
<day_of_week data="周四"/>
<low data="16"/>
<high data="24"/>
<icon data="/ig/images/weather/mostly_sunny.gif"/>
<condition data="以晴为主"/>
</forecast_conditions>
<forecast_conditions>
<day_of_week data="周五"/>
<low data="15"/>
<high data="27"/>
<icon data="/ig/images/weather/sunny.gif"/>
<condition data="晴"/>
</forecast_conditions>
<forecast_conditions>
<day_of_week data="周六"/>
<low data="16"/>
<high data="28"/>
<icon data="/ig/images/weather/sunny.gif"/>
<condition data="晴"/>
</forecast_conditions>
<forecast_conditions>
<day_of_week data="周日"/>
<low data="17"/>
<high data="28"/>
<icon data="/ig/images/weather/sunny.gif"/>
<condition data="晴"/>
</forecast_conditions>
</weather>
</xml_api_reply>
分享到:
相关推荐
标题中的“获取天气预报API,免费接口,项目下载可运行,Java实现”表明这是一个关于使用Java语言开发的天气预报API项目,它提供了免费的API接口,并且已经打包为可直接运行的形式。这样的项目通常对开发者来说是很...
在获取天气预报的场景中,你需要知道中央气象台的公开API接口地址,然后使用HttpClient发送GET请求。请求成功后,服务器会返回一个包含天气信息的XML文档。解析XML数据,可以使用Java内置的DOM、SAX或JAXB等解析器,...
本主题将详细介绍如何使用Java语言来获取天气预报数据,特别是通过"风和天气"以及"高德地图"这两个服务提供商。本文将深入探讨相关技术细节和步骤,以便开发者可以有效地集成到自己的项目中。 首先,我们要了解“风...
文件名为“Weather”的可能是一个Java类,包含了获取天气信息的逻辑和测试代码。 在实际开发中,还需要考虑到性能优化、API使用限制(如免费版本的调用次数限制)以及用户隐私(不要在没有用户许可的情况下获取其...
在Java编程中,获取天气信息是一项常见的任务,尤其在开发涉及地理位置、旅游或者日常生活助手类的应用时。要实现这一功能,通常需要借助于公开的天气API(应用程序接口),这些API提供JSON或XML格式的天气数据,...
### 使用Java获取Google的简单天气预报 #### 概述 本文档将介绍如何使用Java语言来获取Google提供的简单天气预报信息。尽管Google官方已不再直接提供公开的天气API服务,但可以通过第三方API或其他方式间接获取到...
- 当用户点击按钮时,调用`getUserInput`方法获取输入,然后构建API请求URL,最后通过`sendGetRequest`获取天气信息。 4. **解析JSON数据**: - 解析API响应的JSON数据后,需要提取所需的信息。这可以通过遍历...
3. **天气预报API**:谷歌和百度都提供了天气预报API,允许开发者通过特定的接口获取天气信息。这些API通常需要API密钥,用于身份验证和防止滥用。使用API时,我们需要按照文档中的指示,构造正确的请求URL,并可能...
在Java编程领域,获取外部数据是一项常见的任务,其中包括获取天气预报信息。本示例中,我们探讨的主题是如何利用Java从Google获取简单的天气预报。通过分析提供的压缩包文件,我们可以了解到一个简单的实现方案。 ...
3. **Java实现天气预报**:在实现天气预报系统时,我们可能需要从提供天气数据的服务器获取XML文件,如OpenWeatherMap等。使用DOM4J,我们可以轻松地解析这些XML文件,提取出城市的温度、湿度、风速等信息。以下是一...
开发者通过发送HTTP请求到指定的API地址,并附带必要的参数(如城市名或经纬度),来获取天气信息。返回的数据通常以JSON或XML格式提供,然后用Java的网络编程和数据解析库(如HttpURLConnection或OkHttp,以及...
首先,为了获取天气预报数据,开发者可能使用了HTTP或HTTPS协议与天气预报API进行交互。在Java中,可以使用HttpURLConnection或者Apache HttpClient库来发送HTTP请求,获取服务器返回的JSON或XML格式的天气数据。API...
对于Yahoo天气API,我们可能需要提供城市ID或地理坐标来获取相应地区的天气信息。城市ID可以在Yahoo的WOEID(Where On Earth ID)数据库中找到,而地理坐标则是经度和纬度。 在Java中,我们可以使用`java.net.URL`...
以上就是通过Java获取中国各地天气信息的基本流程,结合数据库操作,可以实现一个实用的应用程序。对于初学者来说,这涉及到了网络编程、数据解析和数据库操作等多个Java核心概念,是一个很好的学习实践项目。
这类WSDL通常定义了一系列获取天气信息的方法,如获取当前天气、未来几天的预报等。这些方法的参数可能包括地理位置、日期等。在IDEA中,生成的客户端代码会包含对应的服务代理类,你可以通过实例化这个类并调用其...
因此,开发者需要了解如何使用Java的HttpURLConnection或者HttpClient库进行网络请求,发送GET或POST请求获取天气信息。 关于源码,附带的所有原代码意味着我们可以查看和学习整个实现过程,包括如何处理网络请求、...
8. 最后,注意在获取天气信息前检查更新时间(`updTime`),确保不是无效的更新时间,例如不是“18”。 总结起来,通过Java调用中国天气网API获取天气预报信息,主要涉及网络请求、HTTP客户端操作、JSON解析和数据...
java基于高德地图实现实时查询天气功能源代码。基于高德地图实现实时查询天气功能,api二次开发java基于高德地图实现实时查询天气功能源代码。基于高德地图实现实时查询天气功能,api二次开发java基于高德地图实现...
1、封装WeatherInfo实体类,对接口返回的结果进行映射的实体类 2、WeatherUtils类,负责调用第三方天气预报api接口处理的工具类,包括根据城市查询等,返回的格式是json 3、test类,对接口进行功能性测试
这个系统允许用户输入他们感兴趣的城市名,然后系统会返回该城市的当前天气信息。这样的应用在日常生活中非常实用,帮助人们及时了解天气变化,为出行和活动安排提供便利。 描述中的“效果绝对称赞”暗示了这个系统...