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

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

http://php.weather.sina.com.cn/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.weather.sina.com.cn/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包,可以去官网下载。代码比较简洁,复用性还不错。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部