预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共16页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

SOAPWeb服务介绍 当今最为常见的两种Web服务类型分别是:REST和SOAP。不过,从趋势来看,越来越多人已经开始使用REST风格的Web服务。而SOAP大多也开始或已经转型REST,应该说REST会慢慢成为主流。这篇文章不会对REST介绍太多,主要的重点还是介绍一下SOAP风格的Web服务。 WebService三要素 实际上,现在说“WebService三要素”应该是不算很准确了,不过这个概念一直这样沿用,而且本文我们为了更能清楚阐释SOAPWeb服务,那么就这样定义。 WebService的三个要素分别是: SOAP(SimpleObjectAccessProtoco)简单对象访问协议; WSDL(WebServicesDescriptionLanguage)网络服务描述语言; UDDI(UniversalDescriptionDiscoveryandIntegration)一个用来发布和搜索WEB服务的协议(非必须); SOAP用来描述传递信息的格式规范,WSDL用来描述如何访问具体的接口(比如它会告诉你该服务有哪些接口可以使用,参数是什么等等),UDDI用来管理、分发和查询WebService。下面我们将逐一详细介绍这三个要素,并通过结合实例来进行阐释。 为了把这三个要素说得更清楚,我们将会使用一个免费的SOAPWeb服务作为例子进行阐述。该服务只提供一个接口即:根据QQ号,获取QQ在线状态。查看该服务 SOAP 它是一个协议,可以简单的理解为:它定义了一个基于XML的可扩展消息信封格式。因为客户端与服务器进行交互,由于大家的平台和应用程序都不一样,所以大家约定都采用SOAP这个协议来规范交互时的需要传递的消息。 请求接口时,发送的消息例子: 8698053 接口响应时,返回的消息例子: Y 注:以上例子是使用SOAP1.1发送的消息,SOAP1.2发送的.消息格式其实大同小异,具体自己查看接口文档。 下面对它结构进行详细说明。 XML声明 该行是XML声明。它定义XML的版本(1.0)和所使用的编码(utf-8)。 Envelope元素 xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> .... Envelope元素是SOAP消息的固定根元素,SOAP协议规定的,不能变,其中xmlns是XMLNamespace的缩写,表示XML命名空间。xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"是Envelope的一个属性,它表示定义个以soap为前缀的命名空间http://schemas.xmlsoap.org/soap/envelope/,即命名空间的名字是:http://schemas.xmlsoap.org/soap/envelope/,而它的前缀是soap,这样子就把soap前缀与该命名空间进行了绑定。即任何用soap为前缀的元素都属于该命名空间的,包括根元素Envelope。举个例子: 8698053 其中,Envelope和Body元素就是以soap为前缀的,那么Envelope和Body元素都是属于http://schemas.xmlsoap.org/soap/envelope/这个命名空间的。 同时,SOAP协议中规定,SOAP消息必须使用SOAPEnvelope命名空间,所以http://schemas.xmlsoap.org/soap/envelope/这个命名空间是固定的不能变(注意:这里只针对SOAP1.1版本,SOAP1.2会有所不同)。所有SOAP消息元素,比如:Envelope、Header、Body、Fault也都必须属于该命名空间。 Body元素 8698053 Body元素里面,一般都是放一些请求和响应的内容。qqCheckOnline表示要调用的接口方法,而qqCode就是调用该方法时,传入的参数,当然参数可以有多个。 其中,qqCheckOnline元素上也定义了一个命名空间http://WebXml.com.cn/。值得注意的是,这里在定义命名空间时,并没有设置命名空间前缀(namespaceprefix)。这种设置方式,会把当前元素及其所有子元素,都归属于该命名空间。了解XML命名空间。 我们看到,SOAP消息元素和应用程序本身的元素是属于不同的命名空间,这样有利于把SOAP消息元素与其他元素区分开来,