获取天气的api接口

方式一、
新浪为我们提供了天气预报获取接口API https://www.360docs.net/doc/6613917328.html,/xml.php?city=武汉&password=DJOYnieT8234jlsK&day=0 其中city=后面跟各城市的中文,比如北京,台北。。 day=后面接0 1 2 3 4 这个四个数字,0 表示当天的天气,1表示第二天的天气,以此类推。打开的是XML文件。
话不多说了,上代码:
public class GetWeather {
static String[] city={"北京","天津","上海","重庆","石家庄","太原","沈阳","长春","哈尔滨","南京","杭州","合肥","福州","南昌","济南","郑州","武汉","长沙","广州","海口","成都","贵阳","昆明","西安","兰州","西宁","拉萨","南宁","呼和浩特","银川","乌鲁木齐","香港","台北","澳门"}; //各个城市
static int[] day={0,1,2,3,4}; //哪一天的天气
static String weather; //保存天气情况
static String high; //保存当天最高温度
static String low; //保存当天最低温度
public void getweather() //获取天气函数
{
URL ur;

try {

DocumentBuilderFactory domfac=DocumentBuilderFactory.newInstance(); //相关这个类的使用,可以去网上搜索,下同,不做详细介绍
DocumentBuilder dombuilder=domfac.newDocumentBuilder();
Document doc;
Element root;
NodeList books;
for (String str : city) { //循环访问获取各个地区不同天气情况
ur = new URL("https://www.360docs.net/doc/6613917328.html,/xml.php?city="+str+"&password=DJOYnieT8234jlsK&day="+day);
doc=dombuilder.parse(ur.openStream());
root=doc.getDocumentElement();
books=root.getChildNodes();
for(Node node=books.item(1).getFirstChild();node!=null;node=node.getNextSibling()){
if(node.getNodeType()==Node.ELEMENT_NODE){
if(node.getNodeName().equals("status1"))weather=node.getTextContent(); //获取到天气情况
else if(node.getNodeName().equals("temperature1"))high=node.getTextContent(); //获取到最高温度
else if(node.getNodeName().equals("temperature2"))low=node.getTextContent(); //获取到最低温度
}
}
System.out.println(str+" "+weather+" "+low+"℃~"+high+"℃"); //前台输出
}

}catch(Exception e){System.out.println("获取天气失败:"+e);}
}
public static void main(String [] arg)
{
new GetWeather().getweather(); //主接口函数调用执行方法
}

}
============================================================================================================================================
方式二、
以上为自己获取xml文件然后将数据解析到前台页面的方式,你也可以通过frame标签引用的方式直接将

某些天气网站的api支持的自己的站点:下面提供一个插件获取地址,可以轻松帮你获取你所要的任何形式、形状、大小、天数的天气信息,地址如下:https://www.360docs.net/doc/6613917328.html,/weather/widget.aspx

相关文档
最新文档