根据wsdl访问链接怎么调用webService接口
如果客户提供了wsdl访问链接以及相应的接口文档说明,应该如何调用对应接口呢。
本示例通过eclipse生成客户端,调用并测试接口
1.File--->new--->other--->Web Service Client--->输入wsdl访问链接--->finish。项目就新建成功了。
2.查看自动生成的java代码,认真分析WeatherWSLocator和WeatherWSSoap两个类。
3.编写测试方法。Main方法就可以测试了。附加中的两个例子一个是天气的webService接口,一个是获取手
机号的归属地的webService接口。该接口原来是免费的,后来开始收费,需要提交用户ID。但是获取国
家,省份,地区的接口还可以正常使用,我们这个只是范例,接口是通的。
【下面是Main方法】
public static void main(String[] args) throws Exception {
// 创建一个WeatherWS工厂
WeatherWS weatherWS = new WeatherWSLocator();
// 根据工厂创建一个WeatherWSSoap对象
WeatherWSSoap weatherWSSoap = weatherWS.getWeatherWSSoap();
// 调用WebService提供的getRegionCountry方法获取所有国家
String[] regionCountry = weatherWSSoap.getRegionCountry();
for (int i = 0; i < regionCountry.length; i++) {
System.out.println(regionCountry[i]);
}
// 调用WebService提供的getRegionCountry方法获取所有省份
String[] province = weatherWSSoap.getRegionProvince();
for (int i = 0; i < province.length; i++) {
System.out.println(province[i]);
}
// 调用WebService提供的getRegionProvince方法获取所有省份下面的区县
String[] city = weatherWSSoap.getSupportCityString("31111");
for (int i = 0; i < city.length; i++) {
System.out.println(city[i]);
}
// 调用WebService提供的getWeather方法获取指定地点的天气
String[] weather = weatherWSSoap.getWeather("1951", "0");
for (int i = 0; i < weather.length; i++) {
System.out.println(weather[i]);
}
// 获取全国地址【通过WeatherWSSoapProxy方式获取,第二种方式】
WeatherWSSoapProxy weatherProxy = new WeatherWSSoapProxy();
GetRegionDatasetResponseGetRegionDatasetResult RegionDatasetResult = weatherProxy.getRegionDataset();
MessageElement[] msgs = RegionDatasetResult.get_any();
for (MessageElement messageElement : msgs) {
System.out.println(messageElement.getAsString());
}
// 获取省份下面的区县【通过WeatherWSSoapProxy方式获取,第二种方式】
GetSupportCityDatasetResponseGetSupportCityDatasetResult cityDatasetResult = weatherProxy.getSupportCityDataset("31111");
MessageElement[] element = cityDatasetResult.get_any();
for (MessageElement messageElement : element) {
System.out.println(URLDecoder.decode(messageElement.getAsString(), "UTF-8"));
}
}