您的位置:首页 > 其它

WebService开发--手机号码归属地查询和天气预报查询

2017-03-01 22:29 260 查看

序言:

在很多站点网页的最上方,我们经常会看到一个非常人性化的设计---天气预报。在一些网站上,我们输出一个手机号码,就能查出这个号码的归属地。虽然功能看起来不是特别复杂,但是要收集大量的数据。对于一个公司来说,单独去维护一些这样的功能显然是不合适的。但是通过WebService,就能轻易的实现这些功能

一、查找WEB服务

在网上,可以搜到大量的WEB服务。http://www.webxml.com.cn/zh_cn/index.aspx这里面收集了许多免费WEB服务,手机号码归属地和天气预报的wsdl文档都可以在这个网站上查询。

二、编写天气预报的WebService

打开上文提到的网址,找到天气预报WEB服务,点进去以后会有一个“服务说明的”超链接。点进去以后看到的内容,大家都很熟悉了,就是我们需要的wsdl文档。





复制wsdl的地址,现在eclipse里面的Web Service浏览器内看下是否能访问



在WeatherWSSoap里面有个getWeather方法,body点add输入一个城市名字,就会得到相应城市的天气状况。



上篇,已经介绍了利用JDK中wsimport工具生成客户端代码,本篇就不再赘述。
新建一个web项目,生成客户端代码



好恐怖!竟然出现了错误,这是因为Service端是用.net写的。用java调的话会出现这种错误。解决的方法是需要改一下wsdl文档中的一段代码。
我们通过url的方式生成代码,显然没法修改wsdl文档,需要我们把wsdl文档保存到本地。进行修改后,再利用JDK使用路径的方式进行生成。
在我们的项目上右击new >>>new file 建一个weather.wsdl



再次打开我们查询到的wsdl文档的页面,右击查看源文件。全部复制,粘贴到我们建好了的weather.wsdl文件中保存。这时可能会报错,没有报错的话,ctrl+f 查找<s:element
ref="s:schema" /><s:any /> 替换成 <s:any minOccurs="2" maxOccurs="2"/>



再次生成一下,这次把url改为本地路径,继续执行生成命令,这次有警告,先不要理它



刷新下我们的项目,会看到生成后客户端代码,写一个测试类,看看是否能获取到天气预报信息
package cn.com.webxml.test;

import java.util.List;

import cn.com.webxml.ArrayOfString;
import cn.com.webxml.WeatherWS;
import cn.com.webxml.WeatherWSSoap;

public class WeatherWSTest {

/**
* @param args
*/
public static void main(String[] args) {
WeatherWS weatherWS = new WeatherWS();
WeatherWSSoap weatherWSSoap = weatherWS.getWeatherWSSoap();
ArrayOfString weather = weatherWSSoap.getWeather("天津", null);
List<String> list = weather.getString();
System.out.println(list);
}

}
这里,我们需要调用一个方法,这个方法可以通过wsdl中<wsdl:service name="WeatherWS">标签获取



运行mian方法,查看控制台,就会得到相应城市的天气情况



三、编写归属地查询WebService

经过上面的demo,再写一个归属地查询的WebService应该是轻而易举了。经过测试,发现这次利用jdk通过url生成客户端代码,不会报错。在wsdl文档中<wsdl:service name="xxx">找到调用的类。




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: