4、Web Service-Jaxws(Eclipse版本)实现查看天气和手机归属地
1、前提概要
免费的官网:http://www.webxml.com.cn/zh_cn/web_services.aspx
官网提供了各种免费的webservice
我们使用的是:http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl
使用上述的网址进行天气的查询
使用http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl
作为手机归属地查询的wsdl
2、实现天气的查询代码
1、新建工程
2、访问http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl将文件进行保存
3、使用命令进行编译
此时会编译出错,因为此时使用的是java端获取.net的web service
具体可参考博文:https://wensiqun.iteye.com/blog/1083340
做出如下的修改:
第一步:将xml文件下载下来
第二步:修改xml文件,将文件中所有出现<s:element ref="s:schema"/><s:any/>的地方全部使用 <s:any minOccurs="2" maxOccurs="2"/>替换掉。
第三步:使用wsimport解析本地文件即可。
修改之后的wsdl文件再次进行编译
4、刷新工程
5、填写测试段的代码
此时的情况是怎么知道调用的类或者说其接口
查看wsdl文件:
Ctrl + shift + t 搜索 WeatherWs(工厂类)
所以起始类:WeatherWS.java
写测试类:
package cn.com.client; import java.util.List; import cn.com.webxml.ArrayOfString; import cn.com.webxml.WeatherWS; import cn.com.webxml.WeatherWSSoap; public class client { public static void main(String[] args) { WeatherWS weatherWS = new WeatherWS(); //返回的是代理的对象 WeatherWSSoap weatherWSSoap = weatherWS.getWeatherWSSoap(); ArrayOfString weather = weatherWSSoap.getWeather("合肥", null); List<String> list = weather.getString(); for(String l : list){ System.out.println(l + "...结束啦...."); } } }
结果:
安徽 合肥...结束啦.... 合肥...结束啦.... 1977...结束啦.... 2019/03/20 20:29:46...结束啦.... 今日天气实况:气温:16℃;风向/风力:东南风 1级;湿度:93%...结束啦.... 紫外线强度:弱。空气质量:良。...结束啦.... 紫外线指数:弱,辐射较弱,涂擦SPF12-15、PA+护肤品。 健臻·血糖指数:较易波动,血糖较易波动,注意监测。 穿衣指数:较舒适,建议穿薄外套或牛仔裤等服装。 洗车指数:不宜,有雨,雨水和泥水会弄脏爱车。 空气污染指数:良,气象条件有利于空气污染物扩散。 ...结束啦.... 3月20日 雷阵雨转多云...结束啦.... 12℃/22℃...结束啦.... 西风3-4级转西北风小于3级...结束啦.... 4.gif...结束啦.... 1.gif...结束啦.... 3月21日 雷阵雨...结束啦.... 8℃/18℃...结束啦.... 北风3-4级转东北风小于3级...结束啦.... 4.gif...结束啦.... 4.gif...结束啦.... 3月22日 多云...结束啦.... 5℃/12℃...结束啦.... 东北风小于3级...结束啦.... 1.gif...结束啦.... 1.gif...结束啦.... 3月23日 多云...结束啦.... 6℃/15℃...结束啦.... 东北风转东南风小于3级...结束啦.... 1.gif...结束啦.... 1.gif...结束啦.... 3月24日 多云...结束啦.... 8℃/16℃...结束啦.... 东南风转西南风小于3级...结束啦.... 1.gif...结束啦.... 1.gif...结束啦....
3、测试手机归属地的查询测试
1、新建工程
2、新建wsdl文件
将http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl文件拷贝
3、使用cmd进行编译
4、刷新工程的目录:
5、测试代码
查找工厂类
Ctrtl +shift + t 搜索MobileCodeWS
测试类:
package com.test; import cn.com.webxml.MobileCodeWS; import cn.com.webxml.MobileCodeWSSoap; public class client { public static void main(String[] args) { MobileCodeWS mobileCodeWS = new MobileCodeWS(); MobileCodeWSSoap mobileCodeWSSoap= mobileCodeWS.getMobileCodeWSSoap(); String area = mobileCodeWSSoap.getMobileCodeInfo("18726987258", null); System.out.println(area); } }
此时的两个简单的小测试已经结束了!