zoukankan      html  css  js  c++  java
  • Java调用yahoo!API获取天气数据

    先把代码复制上来,以后再做补充

     1 package com.weather.test;
     2 
     3 import java.io.InputStream;
     4 import java.net.URL;
     5 import java.net.URLConnection;
     6 
     7 import javax.xml.parsers.DocumentBuilder;
     8 import javax.xml.parsers.DocumentBuilderFactory;
     9 
    10 import org.w3c.dom.Document;
    11 import org.w3c.dom.NamedNodeMap;
    12 import org.w3c.dom.Node;
    13 import org.w3c.dom.NodeList;
    14 
    15 public class Test {
    16     // Application ID
    17     final String appid = "雅虎Application ID 需申请";
    18 
    19     public String getWOEID(String name) throws Exception {
    20         URL url = new URL("http://where.yahooapis.com/v1/places.q(" + name
    21                 + ")?appid=" + appid);
    22         URLConnection connection = url.openConnection();
    23         Document doc = stringToDOM(connection.getInputStream());
    24         Node location = doc.getElementsByTagName("name").item(0);
    25         Node node = doc.getElementsByTagName("woeid").item(0);
    26         String woeid = node.getTextContent();
    27         System.out.println(location.getTextContent() + "	"
    28                 + node.getNodeName() + ":" + woeid);
    29         return woeid;
    30     }
    31 
    32     public void getWeather(String woeid) {
    33         try {
    34             URL url = new URL("http://weather.yahooapis.com/forecastrss?u=c&w="
    35                     + woeid);
    36             URLConnection connection = url.openConnection();
    37             Document doc = stringToDOM(connection.getInputStream());
    38             Node lat = doc.getElementsByTagName("geo:lat").item(0);
    39             Node lon = doc.getElementsByTagName("geo:long").item(0);
    40             System.out.println("纬度:" + lat.getTextContent() + "		经度:"
    41                     + lon.getTextContent());
    42             Node node = doc.getElementsByTagName("yweather:astronomy").item(0);
    43             Node sunrise_node = node.getAttributes().item(0);
    44             Node sunset_node = node.getAttributes().item(1);
    45             System.out.println("今天天气情况:");
    46             System.out.println("日出时间:" + sunrise_node.getNodeValue() + "		"
    47                     + "日落时间:" + sunset_node.getTextContent());
    48 
    49             NamedNodeMap today_map = doc
    50                     .getElementsByTagName("yweather:condition").item(0)
    51                     .getAttributes();
    52             System.out.println("温度:"
    53                     + today_map.getNamedItem("temp").getNodeValue() + "℃		"
    54                     + today_map.getNamedItem("text").getNodeValue()
    55                     + "		发布时间:"
    56                     + today_map.getNamedItem("date").getNodeValue() + "
    ");
    57 
    58             NodeList list = doc.getElementsByTagName("yweather:forecast");
    59             System.out.println("未来五天天气情况:");
    60             for (int i = 0; i < list.getLength(); i++) {
    61                 NamedNodeMap map = list.item(i).getAttributes();
    62                 System.out.println(map.getNamedItem("day").getNodeValue()
    63                         + "	最低气温:" + map.getNamedItem("low").getNodeValue()
    64                         + "℃" + "	最高气温:"
    65                         + map.getNamedItem("high").getNodeValue() + "℃" + "	"
    66                         + map.getNamedItem("text").getNodeValue());
    67             }
    69         } catch (Exception e) {
    70             // TODO Auto-generated catch block
    71             e.printStackTrace();
    72         }
    73     }
    74 
    75     public Document stringToDOM(InputStream input) {
    76         try {
    77             DocumentBuilder db = DocumentBuilderFactory.newInstance()
    78                     .newDocumentBuilder();
    79             Document doc = db.parse(input);
    80             return doc;
    81         } catch (Exception e) {
    82             // TODO Auto-generated catch block
    83             e.printStackTrace();
    84             return null;
    85         }
    86     }
    87 
    88     public static void main(String[] args) {
    89         Test test = new Test();
    90         try {
    91             String woeid = test.getWOEID("meizhou");
    92             test.getWeather(woeid);
    93             System.out.println("From yahoo!");
    94         } catch (Exception e) {
    95             // TODO Auto-generated catch block
    96             e.printStackTrace();
    97         }
    98     }
    99 }
  • 相关阅读:
    LeetCode 1672. 最富有客户的资产总量
    LeetCode 455. 分发饼干
    Linux上安装docker并设置免sudo权限与国内镜像源
    Java后端期末复习
    Windows 10 家庭版开启本地安全策略 关闭管理员权限提升
    C语言中两种交换变量值方法的速度测试
    jQuery动态生成元素无法绑定事件的解决办法
    JQuery绑定事件处理动态添加的元素
    Socket通信服务端和客户端总结
    js传函数指针
  • 原文地址:https://www.cnblogs.com/kcher90/p/3181007.html
Copyright © 2011-2022 走看看