zoukankan      html  css  js  c++  java
  • java调用第三方的webservice应用实例

    互联网上面有很多的免费webService服务,我们可以调用这些免费的WebService服务,将一些其他网站的内容信息集成到我们的Web应用中显示。

    一些常用的webservice网站的链接地址:         http://www.tuicool.com/articles/iIfqma

    一:调用免费的web service获取天气预报信息    

    1.第三方服务地址

    http://www.webxml.com.cn/WebServices/WeatherWebService.asmx 

      http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl

    2.生成本地桩(借助wsimport命令工具自动生成客户端代码)

     打开命令行窗口,切换到项目的src目录,执行"wsimport -keep http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl"生成客户端代码,如下图所示:

     

     运行结果显示,使用wsimport工具直接生成客户端代码会抛异常, 无法生成客户端代码, 只是因为我们要调用的WebService是用.net写的,这个是Java调用net的webservice都有的问题,这个问题的解决办法如下:

    1. 将对应的wsdl文档保存到本地

      

      2、修改wsdl文档的部分内容: <s:element ref="s:schema" /><s:any /> 替换成 <s:any minOccurs="2" maxOccurs="2"/>

      

      再次执行wsimport生成代码,这次使用保存在本地的WeatherWS.wsdl文件来进行生成,如下图所示:

      

      从执行结果显示,这一次可以正常生成代码了,刷新一下src目录,就可以看到生成的代码了,如下图所示:

      

     3.借助生成的代码编写请求代码

    复制代码
    package me.gacl.ws.client;
    
    import java.util.List;
    
    import org.junit.Test;
    
    import cn.com.webxml.ArrayOfString;
    import cn.com.webxml.WeatherWebService;
    import cn.com.webxml.WeatherWebServiceSoap;
    
    public class WeatherWSClient {
        public static void main(String[] args) {
            // 创建一个WeatherWS工厂
            WeatherWebService factory = new WeatherWebService();
            // 根据工厂创建一个WeatherWSSoap对象
            WeatherWebServiceSoap weatherWSSoap = factory
                    .getWeatherWebServiceSoap();
            // 调用WebService提供的getWeather方法获取南宁市的天气预报情况
            ArrayOfString weatherInfo = weatherWSSoap.getWeatherbyCityName("上海");
            List<String> lstWeatherInfo = weatherInfo.getString();
            // 遍历天气预报信息
            for (String string : lstWeatherInfo) {
                System.out.println(string);
                System.out.println("------------------------");
            }
        }
    
        
        //支持的行政市
        @Test
        public void Test() {
            // 创建一个WeatherWS工厂
            WeatherWebService factory = new WeatherWebService();
            // 根据工厂创建一个WeatherWSSoap对象
            WeatherWebServiceSoap weatherWSSoap = factory
                    .getWeatherWebServiceSoap();
            // 调用WebService提供的getWeather方法获取南宁市的天气预报情况
            ArrayOfString weatherInfo = weatherWSSoap.getSupportProvince();
            List<String> lstWeatherInfo = weatherInfo.getString();
            // 遍历天气预报信息
            for (String string : lstWeatherInfo) {
                System.out.println(string);
                System.out.println("------------------------");
            }
        }
    
    }
    复制代码

     测试结果:

    复制代码
    直辖市
    ------------------------
    上海
    ------------------------
    58367
    ------------------------
    58367.jpg
    ------------------------
    2017-6-4 10:50:51
    ------------------------
    21℃/28℃
    ------------------------
    6月4日 晴转多云
    ------------------------
    东风微风
    ------------------------
    0.gif
    ------------------------
    1.gif
    ------------------------
    今日天气实况:气温:26℃;风向/风力:东北风 3级;湿度:53%;紫外线强度:强。空气质量:中。
    ------------------------
    紫外线指数:强,涂擦SPF大于15、PA+防晒护肤品。
    感冒指数:少发,无明显降温,感冒机率较低。
    穿衣指数:热,适合穿T恤、短薄外套等夏季服装。
    洗车指数:较适宜,无雨且风力较小,易保持清洁度。
    运动指数:较适宜,请适当降低运动强度。
    空气污染指数:中,易感人群应适当减少室外活动。
    
    ------------------------
    22℃/25℃
    ------------------------
    6月5日 中雨
    ------------------------
    东南风微风
    ------------------------
    8.gif
    ------------------------
    8.gif
    ------------------------
    21℃/25℃
    ------------------------
    6月6日 阵雨转多云
    ------------------------
    南风转西北风微风
    ------------------------
    3.gif
    ------------------------
    1.gif
    ------------------------
    上海简称:沪,位置:上海地处长江三角洲前缘,东濒东海,南临杭州湾,西接江苏,浙江两省,北界长江入海,正当我国南北岸线的中部,北纬31°14′,东经121°29′。
    面积:总面积7823.5平方公里。人口:人口1000多万。上海丰富的人文资源、迷人的城市风貌、繁华的商业街市和欢乐的节庆活动形成了独特的都市景观。游览上海,
    不仅能体验到大都市中西合壁、商儒交融、八方来风的氛围,而且能感受到这个城市人流熙攘、车水马龙、灯火璀璨的活力。上海在中国现代史上占有着十分重要的地位,
    她是中国XXX的诞生地。许多震动中外的历史事件在这里发生,留下了众多的革命遗迹,处处为您讲述着一个个使人永不忘怀的可歌可泣的故事,成为包含民俗的人文景
    观和纪念地。在上海,每到秋祭,纷至沓来的人们在这里祭祀先烈、缅怀革命历史,已成为了一种风俗。大上海在中国近代历史中,曾是风起云涌可歌可泣的地方。在这里荟
    萃多少风云人物,散落在上海各处的不同住宅建筑,由于其主人的非同寻常,蕴含了耐人寻味的历史意义。这里曾留下许多革命先烈的足迹。瞻仰孙中山、宋庆龄、鲁迅等故居,
    会使您产生抚今追昔的深沉遐思,这里还有无数个达官贵人的住宅,探访一下李鸿章、蒋介石等人的公馆,可以联想起主人那段显赫的发迹史。 ------------------------
    复制代码

     以上,就是一个完整的第三方的webservice服务的调用的实例。

     https://www.cnblogs.com/mr-wuxiansheng/p/6939828.html

  • 相关阅读:
    68
    56
    Django manager 命令笔记
    Django 执行 manage 命令方式
    Django 连接 Mysql (8.0.16) 失败
    Python django 安装 mysqlclient 失败
    H.264 SODB RBSP EBSP的区别
    FFmpeg—— Bitstream Filters 作用
    MySQL 远程连接问题 (Windows Server)
    MySQL 笔记
  • 原文地址:https://www.cnblogs.com/suizhikuo/p/10030538.html
Copyright © 2011-2022 走看看