WebServce查询免费的天气预报实例

来源:互联网 发布:卷积运算公式矩阵 编辑:程序博客网 时间:2024/05/17 07:07
  • 先百度一下,找到webservice对应的wsdl:

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

  • 创建Java工程,将上述wsdl生成客户端代码,具体步骤参考方法一:WebService(1)——使用JDK开发WebService

  • 生成过程中,你会发现报错啦,无法生成。哈哈。那是因为这个webservice是用.net写的,我们需要使用第二种方式生成客户端代码,具体步骤参考方法二:WebService(2)——使用eclipse的TCP_IP工具监听端口

    • 注意,在把wsdl文档拷贝到本地时,需要修改里面的一个内容
    • 这里写图片描述 
      修改为这里写图片描述
    • 要修改的位置不止一处,使用搜索功能,免得漏了
  • 并不是所有的webservice都需要使用第二种方法,有一些直接用第一种方法就可以搞定了。

注:并不需要使用上述的方法二,,,可以新建一个工程,在src下创建一个weather.wsdl文件,然后把http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl
里面的内容全部粘贴进去,注意要进行上述的修改并且将" "符号进行删除,因为这是html符号并不是xml符号,会导致解析失败,然后cmd窗口执行:
wsimport -s  "项目路径" -p "包路径" -keep "weather.wsdl的绝对路径"


  • 成功生成之后,刷新工程,就可以使用了 
    这里写图片描述

  • 写一个main,测试一下

    public static void main(String[] args) {        WeatherWebService weatherWebService = new WeatherWebService();        WeatherWebServiceSoap weatherWebServiceSoap = weatherWebService.getWeatherWebServiceSoap();        ArrayOfString array = weatherWebServiceSoap.getWeatherbyCityName("福州");        List<String> list = array.getString();        int i = 0;        for(String str:list){            System.out.println(i++ + ": "+ str);        }    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

结果 
这里写图片描述

将得到的list集合进行进一步的解析,就可以到详细的天气信息了