100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > java新浪天气调用_java 利用新浪天气API获取天气预报

java新浪天气调用_java 利用新浪天气API获取天气预报

时间:2019-05-29 04:03:13

相关推荐

java新浪天气调用_java 利用新浪天气API获取天气预报

新浪为我们提供了天气预报获取接口API

http://php./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("http://php./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(); //主接口函数调用执行方法

}

}

以上需要导入一些jar包,可以去官网下载。代码比较简洁,复用性还不错。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。