J2EE工具类:WeatherUtil.java
来源:互联网 发布:乐视re软件 编辑:程序博客网 时间:2024/06/05 20:23
package com.worthtech.app.util;import java.io.ByteArrayInputStream;import java.io.InputStream;import java.net.URL;import org.w3c.dom.Document;import org.w3c.dom.NodeList;/** * 天气查询. 推荐使用此 google service 查询<br/> */public class WeatherUtil {/** * 使用 google 查询天气<br/> * 上海: http://www.google.com/ig/api?hl=zh_cn&weather=shanghai * * @param city 城市拼音, 如 北京: beijing */public static String getWeather(String city) {StringBuilder sb = new StringBuilder();try {String ur = "http://www.google.com/ig/api?hl=zh_cn&weather=";URL url = new URL(ur + city);InputStream in = url.openStream();String data = "";// 将流转换为 文本. 此一过程是为了解决乱码问题java.io.ByteArrayOutputStream bos = new java.io.ByteArrayOutputStream();int i = -1;while ((i = in.read()) != -1){bos.write(i);}// 转换编码为 GB18030, 否则会乱码data = bos.toString().replace("<?xml version=\"1.0\"?>","<?xml version=\"1.0\" encoding=\"GB18030\"?>");// 将文本转换成流InputStream is = new ByteArrayInputStream(data.getBytes());// 读取流Document doc = javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(is);NodeList info = doc.getElementsByTagName("forecast_information").item(0).getChildNodes();sb.append(info.item(4).getAttributes().item(0).getNodeValue())// 日期.append("|").append(city).append("|");// 今天的天气, 最高气温 最低气温NodeList today = doc.getElementsByTagName("forecast_conditions").item(0).getChildNodes();sb.append(today.item(0).getAttributes().item(0).getNodeValue())//星期.append("|").append(today.item(1).getAttributes().item(0).getNodeValue())//最低气温1.append("℃|").append(today.item(2).getAttributes().item(0).getNodeValue())//最高气温2.append("℃|").append(today.item(3).getAttributes().item(0).getNodeValue())//晴的图标.append("|").append(today.item(4).getAttributes().item(0).getNodeValue())//晴4;} catch (Exception e) {sb.append("获取天气失败或不存在此城市");}return sb.toString();}public static void main(String[] args) {System.out.println("上海天气: " + WeatherUtil.getWeather("shanghai"));System.out.println("香港天气: " + WeatherUtil.getWeather("hongkong"));System.out.println("北京天气: " + WeatherUtil.getWeather("beijing"));}}
0 0
- J2EE工具类:WeatherUtil.java
- J2EE工具类:DateUtil .java
- J2EE工具类:WebHttpClient.java
- J2EE工具类:CookieUtil.java
- J2EE工具类:NumberUtil.java
- J2EE工具类:DateUtil .java
- J2EE工具类:StringUtil.java
- J2EE工具类:PropertiesUtil.java
- J2EE工具类:DataBaseUtil.java
- J2EE工具类:ArrayUtil.java
- J2EE工具类:DES.java
- J2EE工具类:WebHttpClient.java
- J2EE工具类:WebClient.java
- J2EE工具类:CalendarUtil .java
- J2EE工具类:ClientSocketUtil.java&ServerSocketConnection.java
- J2EE工具类:MoneyUtil.java小写钱转成大写钱
- J2EE上传文件工具类
- java编程工具 JDK(或J2EE)的安装
- 网络编程_UDP协议发送数据
- 多选本地相册中的图片并展示(仿QQ空间动态发送页面)上传至服务器
- 使用Implementors插件方便的定位到某个接口的实现类
- PHP Redis 限制API和各种接口 请求频率
- 权限控制
- J2EE工具类:WeatherUtil.java
- flush privileges 示例--刷新MySQL的系统权限相关表
- 登录时“记住用户名”
- C++下遍历文件夹,查找文件 _finddata_t _findfirst _findnext
- 3625: [Codeforces Round #250]小朋友和二叉树
- 解决win7开机黑屏方法
- linux zip 压缩命令 解压命令 unzip
- mysql 获取规定时间段内每一天的统计数据
- Could not find jar tool executable问题解决