webservices系列(三)——调用线上webservice(天气预报和号码查询)

天气预报,这个接口是.net平台的,直接用wsimport 生成代码会报错,需要保存本地修改


浏览器打开http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl,另存为weather.wsdl,然后将文件中所有 <s:element ref="s:schema" /><s:any /> 替换成 <s:any minOccurs="2" maxOccurs="2"/>即可。

再次使用wsimport命令生成客户端代码,这次使用本地修改好的WSDL文件来生成命令如下:
wsimport -p com.lc.client3 -keep H:\workspace1.8\web_service_test2\src\com\lc\weather.wsdl

可以看到在当前目录下生成了很多Java类,将这些类复制到eclipse项目


下面编写一个测试类来调用生成的客户端代码,获取天气预报信息

public class WeatherClent {

	public static void main(String[] args) {
		WeatherClent clent = new WeatherClent();
		clent.printWeathInfo("深圳");
	}
	
	/**
	 * 天气查询
	 * @param cname
	 */
	public void printWeathInfo(String cname) {
		WeatherWS wws = new WeatherWS();
		WeatherWSSoap wwssoap = wws.getWeatherWSSoap();
		ArrayOfString aString = wwssoap.getWeather(cname, null);
		List<String> ls = aString.getString();
		for(String s : ls) {
			System.out.println(s);
		}
	}
}
运行结果

手机号码详情查询
使用wsimport生成客户端代码
wsimport -p com.lc.client3.mobile -keep http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl
将生成的代码复制到eclipse对应的包下面

编写测试类

public class WeatherClent {

	public static void main(String[] args) {
		WeatherClent clent = new WeatherClent();
		clent.printWeathInfo("深圳");
	}
	
	/**
	 * 天气查询
	 * @param cname
	 */
	public void printWeathInfo(String cname) {
		WeatherWS wws = new WeatherWS();
		WeatherWSSoap wwssoap = wws.getWeatherWSSoap();
		ArrayOfString aString = wwssoap.getWeather(cname, null);
		List<String> ls = aString.getString();
		for(String s : ls) {
			System.out.println(s);
		}
	}
}
运行结果


参考资料
[1].http://wuhongyu.iteye.com/blog/807470

[2].https://my.oschina.net/liu13430/blog/373940?fromerr=WmdtQOoY

[3].http://clq9761.iteye.com/blog/976029/

转载于:https://www.cnblogs.com/marx-luo/p/6713067.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值