【WebService】调用第三方提供的webService服务(七)
互联网上面有很多的免费webService服务,我们可以调用这些免费的WebService服务,将一些其他网站的内容信息集成到我们的Web应用中显示,下面就以获取天气预报数据和查询国内手机号码归属地为例进行说明。
气象中心的管理系统将收集的天气信息并将数据暴露出来(通过WebService Server), 而各大站点的应用就去调用它们得到天气信息并以不同的样式去展示(WebService Client)。
调用免费的WebService获取天气预报信息
1、在网络上查询免费的天气预报webservice的地址:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx ,浏览器访问结果如下:

2、wsdl文件地址:http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl

3、新建一个java工程,使用wsimport工具自动生成客户端代码:
创建java工程

使用wsimport工具生成代码,如下:

生成客户端代码报错,这个因为WebService服务端使用.net写的,生成java客户端代码报错。需要修改wsdl文件中的部分内容,操作如下:
a.将对应的wsdl文档保存到本地

b.修改wsdl文档的部分内容:将 <s:element ref="s:schema" /><s:any /> 替换成 <s:any minOccurs="2" maxOccurs="2"/>

继续生成客户端代码,如下:
----------------------》
4、编写客户端调用代码,如下:
package com.test.ws.client; import cn.com.webxml.ArrayOfString;
import cn.com.webxml.WeatherWS;
import cn.com.webxml.WeatherWSSoap; /**
* 调用WebService的客户端
* @author H__D
* @date 2017年8月3日 上午10:57:00
*
*/
public class WSClient { public static void main(String[] args) {
//创建一个用于产生WeatherWS实例的工厂,WeatherWS类是wsimport工具生成的
WeatherWS factory = new WeatherWS();
//通过工厂生成一个WeatherWSSoap实例,WeatherWSSoap是wsimport工具生成的
WeatherWSSoap weatherWSSoap = factory.getWeatherWSSoap();
System.out.println(weatherWSSoap.getClass()); //调用WeatherWSSoap的getWeather方法,获取天气信息
ArrayOfString weather = weatherWSSoap.getWeather("深圳", null);
for (String string : weather.getString()) {
System.out.println(string);
System.out.println("----------------");
} } }
5、控制台输出如下:

调用免费的WebService获取手机号码归属地信息
1、在网络上查询免费的手机号码归属地webservice的地址:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx ,浏览器访问结果如下:

2、wsdl文件地址:http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl ,如下:

3、新建一个java工程,使用wsimport工具自动生成客户端代码:
a、新建一个java工程:

b、使用wsimport生成客户端代码:
----------------》
4、编写客户端调用代码,如下:
package com.test.ws.client; import cn.com.webxml.MobileCodeWS;
import cn.com.webxml.MobileCodeWSSoap; /**
* 调用WebService的客户端
* @author H__D
* @date 2017年8月3日 上午11:13:39
*
*/
public class WSClient { public static void main(String[] args) {
//创建一个用于产生MobileCodeWS实例的工厂,MobileCodeWS类是wsimport工具生成的
MobileCodeWS factory = new MobileCodeWS();
//通过工厂生成一个MobileCodeWSSoap实例,MobileCodeWSSoap是wsimport工具生成的
MobileCodeWSSoap mobileCodeWSSoap = factory.getMobileCodeWSSoap();
System.out.println(mobileCodeWSSoap.getClass()); //调用MobileCodeWSSoap的getMobileCodeInfo方法,获取天气信息
String mobileCodeInfo = mobileCodeWSSoap.getMobileCodeInfo("151****1111", null);
System.out.println(mobileCodeInfo); }
}
5、运行调用代码,控制台输出如下:

【WebService】调用第三方提供的webService服务(七)的更多相关文章
- WebService学习总结(四)——调用第三方提供的webService服务
http://www.cnblogs.com/xdp-gacl/p/4260627.html 互联网上面有很多的免费webService服务,我们可以调用这些免费的WebService服务,将一些其他 ...
- WebService学习--(四)调用第三方提供的webService服务
互联网上面有很多的免费webService服务,我们可以调用这些免费的WebService服务,将一些其他网站的内容信息集成到我们的Web应用中显示,下面就以获取天气预报数据和查询国内手机号码归属地为 ...
- WebService学习总结——调用第三方提供的webService服务
互联网上面有很多的免费webService服务,我们可以调用这些免费的WebService服务,将一些其他网站的内容信息集成到我们的Web应用中显示,下面就以获取天气预报数据. 气象中心的管理系统将收 ...
- WebService学习总结(三)--调用第三方提供的webService服务
互联网上面有很多的免费webService服务,我们可以调用这些免费的WebService服务,将一些其他网站的内容信息集成到我们的Web应用中显示,下面就以获取电子邮箱验证和查询火车时刻表和天气预报 ...
- WebService-调用第三方提供的webService服务
互联网上面有很多的免费webService服务,我们可以调用这些免费的WebService服务,将一些其他网站的内容信息集成到我们的Web应用中显示,下面就以获取天气预报数据和查询国内手机号码归属地为 ...
- 延迟调用或多次调用第三方的Web API服务
当我们调用第三方的Web API服务的时候,不一定每次都是成功的.这时候,我们可能会再多尝试几次,也有可能延迟一段时间再去尝试调用服务. Task的静态方法Delay允许我们延迟执行某个Task,此方 ...
- 使用WebService调用第三方服务
场景 某个系统服务由第三方提供,我方要使用到这个这个服务,就可以使用WebService的方式. 什么是WebService 关于什么WebService,官方是这么解释的: Web service是 ...
- 调用别人提供的WebService
在开发过程中,许多时候需要使用到别人提供的WebService接口,使用其中的方法. 在调用别人提供的接口时,会得到接口使用的文档,其中包括接口的网络地址及方法作用等. 找到WebService的ws ...
- 根据第三方提供的webservice地址获取文件信息
import org.apache.axis.client.Call; import org.apache.axis.client.Service; import org.apache.axis.en ...
随机推荐
- Shell的18条常用命令整理
1. ls: 类似于dos下的dir命令 ls最常用的参数有三个: -a -l -F. ls –a Linux上的文件以.开头的文件被系统视为隐藏文件,仅用ls命令是看不到他们的,而用ls -a除 ...
- typedef void (*Fun) (void) 的理解——函数指针——typedef函数指针
首先介绍大家比较熟悉的typedef int i;//定义一个整型变量i typedef myInt int: myInt j;//定义一个整型变量j 上面介绍得是我们常用的比较简单的typedef的 ...
- PHP中的变量与PHP中算false的情况
一PHP中的变量 1.PHP中的变量,声明与使用必须用$开头 2.PHP是一种弱类型语言,变量其实并不需要声明.可以直接给变量赋任何类型的值: 3.PHP中可以使用连等同时声明多个变量, eg:num ...
- Python中操作SQLAlchemy
一.ORM 框架简介 对象-关系映射(Object/Relation Mapping,简称ORM),是随着面向对象的软件开发方法发展而产生的.面向对象的开发方法是当今企业级应用开发环境中的主流开发方法 ...
- LAB3 整数相加
//yuec2 Yue Cheng package lab3; public class Fraction { int numerator; int denominator; //obeject wi ...
- 如何开发简单的javaweb项目,jsp+javabean+servlet
一.相关的软件下载和环境配置 1.下载并配置JDK. 2.下载eclipse. 3.下载并配置apache-tomcat(服务器). 4.下载MySQL(数据库). 5.下载Navicat for M ...
- MVC学习(三)Code-First Demo
前面两篇文章介绍了DataBase-First例子,这里就介绍Code-First. 个人简单理解:就是在程序中编写代码,然后在数据库中生成相应的表.字段.约束等等.听上去蛮神奇的.Now,begin ...
- 46-wxpython 4 使用 grid 展示表格
转载:https://blog.csdn.net/soslinken/article/details/79024938#%E4%BD%BF%E7%94%A8%E6%A0%B7%E4%BE%8B wxp ...
- 小程序 picker 多列选择器 数据动态获取
需求是将各校区对应各班级的数据 以两列选择器的方式展示出来,并且可以在选择完成之后记录选结果参数. 校区数据 和 班级数据 分别是两个接口,以 校区 teach_area_id 字段关联 其各班级数据 ...
- rbac 权限分配, 基于formset实现,批量增加
这里需要两个知识点: - formset - 自动发现项目中的URL1. 什么是formset: Django中 form组件 或 ModelForm组件,用于做一个表单的验证. 接收前端form表单 ...