`

获取天气预报

    博客分类:
  • java
阅读更多
最近工作有用到web services,而这两天也比较有空,就弄了一个获取天气预报的Util。以前以为这有多难,因为数据来源是个困难。现在用web services的技术,这个就不用管了。说共享也好,说偷也好,总之是达到目的了。网上找了几个提供web services的网站。发现下面这个是相当不错的。
http://www.webxml.com.cn/Webservices/WeatherWebService.asmx

下面就用java把具体的代码写写吧!
这里我采用比较简单的get请求调用,毕竟这也没什么秘密可言,就用最简单的就可以了。
还有,这里很多捕获异常的东西给我去掉了,自己加吧!


public final class WeatherUtil{        private static String SERVICES_HOST = "www.webxml.com.cn";    private static String WEATHER_SERVICES_URL = "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/";    private static String SUPPORT_CITY_URL = WEATHER_SERVICES_URL            + "getSupportCity?byProvinceName=ALL";    private static String WEATHER_QUERY_URL = WEATHER_SERVICES_URL            + "getWeatherbyCityName?theCityName=";    private WeatherUtil(){}    public static InputStream getSoapInputStream(String url)    {        InputStream is = null;        URL U = new URL(url);        URLConnection conn = U.openConnection();        conn.setRequestProperty("Host", SERVICES_HOST);        conn.connect();        is = conn.getInputStream();        return is;    }    //取得支持的城市列表    public static ArrayList<String> getSupportCity()    {        ArrayList cityList = null;        Document doc;        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();        dbf.setNamespaceAware(true);        DocumentBuilder db = dbf.newDocumentBuilder();        InputStream is = getSoapInputStream(SUPPORT_CITY_URL);        doc = db.parse(is);        NodeList nl = doc.getElementsByTagName("string");        int len = nl.getLength();        cityList = new ArrayList<String>(len);        for (int i = 0; i < len; i++)        {             Node n = nl.item(i);             String city = n.getFirstChild().getNodeValue();             cityList.add(city);        }        is.close();        return cityList;    }    //取得城市的天气    public static ArrayList<String> getWeather(String city)    {        ArrayList weatherList = null;            Document doc;            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();            dbf.setNamespaceAware(true);            DocumentBuilder db = dbf.newDocumentBuilder();//这里他的编码格式就是这样,我试了几个也没办法。。只好这样混过去了            InputStream is = getSoapInputStream(WEATHER_QUERY_URL                    + new String(city.getBytes("UTF-8"), "GBK"));            doc = db.parse(is);            NodeList nl = doc.getElementsByTagName("string");            int len = nl.getLength();            weatherList = new ArrayList<String>(len);            for (int i = 0; i < len; i++)            {                Node n = nl.item(i);                String weather = n.getFirstChild().getNodeValue();                weatherList.add(weather);            }            is.close();        return weatherList;    }     public static void main(String[] args) throws Exception    {        ArrayList<String> weatherList = WeatherUtil.getWeather("59287");        // ArrayList<String> weatherList = WeatherUtil.getSupportCity();        for (String weather : weatherList)        {            System.out.println(weather);        }    }}
分享到:
评论

相关推荐

    js 获取天气预报

    在本文中,我们将深入探讨如何利用JS获取天气预报信息,这通常涉及到API调用和JSON数据解析。 首先,天气预报信息通常是通过与气象服务提供商的API接口进行交互获取的。API(Application Programming Interface)是...

    自动获取天气预报系统

    在IT行业中,自动获取天气预报系统是一个非常实用的Web应用程序,它允许用户无需手动刷新页面就能获取最新的气象信息。这个系统通常使用Ajax(Asynchronous JavaScript and XML)技术来实现,这是一种提升网页用户...

    获取天气预报API,免费接口,项目下载可运行,Java实现

    标题中的“获取天气预报API,免费接口,项目下载可运行,Java实现”表明这是一个关于使用Java语言开发的天气预报API项目,它提供了免费的API接口,并且已经打包为可直接运行的形式。这样的项目通常对开发者来说是很...

    一个REST获取天气预报的客户端小例子(分别用C#和jQuery实现)

    标题中的“一个REST获取天气预报的客户端小例子”是指通过RESTful API来获取天气预报数据的应用实例,分别使用了C#和jQuery两种不同的技术实现。REST(Representational State Transfer)是一种网络应用程序的设计...

    获取天气预报信息的Web服务

    ### 获取天气预报信息的Web服务:关键知识点解析 #### 标题解读: “获取天气预报信息的Web服务”这一标题明确指出了文章的核心主题——如何通过Web服务接口获取天气预报数据。这通常涉及到一系列的技术细节,包括...

    JS 获取天气预报的网页

    标题 "JS 获取天气预报的网页" 指的是一个使用JavaScript编程语言编写的网页应用,其主要功能是获取并展示中国天气网(weather.cn)的天气预报信息。这个应用可能包含了一个动态的交互机制,允许用户选择不同的城市...

    VC获取天气预报示例程序

    总之,这个"VC获取天气预报示例程序"为初学者提供了一个很好的实践平台,展示了如何利用VC6结合网络技术实现实用的应用程序。通过深入研究和实践,不仅可以掌握VC++的基础编程,还能进一步了解网络通信和数据解析等...

    html获取天气预报

    HTML获取天气预报是一种常见的网页开发需求,通过集成特定的API和服务,可以实现在网页上实时显示天气信息。在这个项目中,我们看到一个专注于天气预报功能的实现,包括使用开源库、CSS样式以及自编的示例代码。接...

    Delphi做的获取天气预报源码

    在这个特定的案例中,"Delphi做的获取天气预报源码"是一个项目,它利用Delphi的编程能力来获取并显示实时天气信息。这个源码可能包含了一个客户端应用程序,用户可以通过它来查询不同地区的天气预报。 在Delphi中...

    利用c#获取天气预报信息

    利用C#制作的天气预报助手 采用vs2008开发,因为是天气预报,所以需要网络...程序启动后会获取本机IP,根据IP显示当地的天气预报,类似QQ的天气预报显示功能,不过信息更加丰富 也可以手动选择省、市、区查看天气预报。

    获取天气预报信息-XML

    标题中的“获取天气预报信息-XML”提示我们这个压缩包包含了一个使用XML数据来获取天气预报的程序或示例。XML(eXtensible Markup Language)是一种标记语言,常用于结构化数据的交换,特别是在网络服务和应用程序...

    获取天气预报信息

    在IT行业中,获取天气预报信息是一项常见的任务,尤其对于初学者来说,这通常是他们学习网络数据获取和处理的起点。本教程将详细讲解如何通过XML数据格式获取并解析天气预报信息,适合对编程有一定了解但尚未深入...

    完整版获取天气预报.rar

    在IT行业中,获取天气预报是一项常见的需求,无论是个人生活还是商业应用,都需要及时、准确的气象数据。"完整版获取天气预报"这个标题和描述暗示我们可能会涉及到一个系统或者工具,它能提供全面的天气预报服务。让...

    使用XMLHTTP获取天气预报

    总结来说,"使用XMLHTTP获取天气预报"这个主题涵盖了JavaScript中的Ajax技术,XMLHTTP对象的使用,JSON数据的解析,以及DOM操作等核心知识点。通过这些技术,开发者可以创建出更加交互性强、用户体验优良的网页应用...

    DELPHI 通过WEBSERVICE获取天气预报

    DELPHI 通过WEBSERVICE获取天气预报,可获取全球,全国各省市天气预报详情

    使用JS在页面前端获取天气预报

    function getWeatherInfo { $ getScript &quot;... + $ param { city : $ &quot;#position&quot; val 城市 day : 0 password : &quot;DJOYnieT8234jlsK&quot;... } function json { ...weather &qu [更多]

    C#WinFrom获取天气预报源码

    本工具使用C#语言开发WinFrom软件,根据国家气象局天气预报接口获取未来十五天天气预报。只用来新手学习,里边主要涉及到Url请求,Json转List,Json转model。

    android 获取天气预报

    在Android开发中,获取天气预报是一项常见的功能,它允许用户查询特定城市的实时及未来几天的天气情况。要实现这个功能,开发者需要理解网络请求、JSON解析、数据展示等多个技术环节。下面将详细介绍如何在Android中...

    使用Web Service获取天气预报

    "使用Web Service获取天气预报" 在本篇文章中,我们将学习如何使用Web Service获取天气预报。Web Service是一种基于网络的远程调用技术,允许不同的应用程序之间进行交互和数据交换。通过使用Web Service,我们可以...

Global site tag (gtag.js) - Google Analytics