1、学习WebService调用的预备知识
(1)XML:Extensible Markup Language—扩展性标记语言
XML,用于传输格式化的数据,是web服务的基础
namespace–命名空间
xmlns=“http://itcast.cn” 使用默认命名空间
xmlns:itcast=“http://itcast.cn” 使用指定名称的命名空间
(2)WSDL:webService Description Language–web服务描述语言
通过xml形式说明服务在什么地方–地址。
通过xml形式说明服务提供什么样的方式–如果调用。
(3)SOAP–Simple Object Access Protocol(简单对象访问协议)
SOAP作为一个基于XML语言的协议用于有网上传输数据。
SOAP=在http的基础上+XML数据。
SOAP是基于http的。
SOAP组成如下:
Envelope—必须的部分。以XML的根元素出现。
Headers–可选的。
Body–必须的。在body部分,包含要执行的服务器的方法。和发送到服务器的数据。
2、WebService的服务地址
Webservice服务网站:http://www.webxml.com.cn
3、WSDL解析
wsdl文档从下往上读:
Types - 数据类型定义的容器,它使用某种类型系统(一般地使用XML Schema中的类型系统)。(入参和出参的数据类型)
Message - 通信消息的数据结构的抽象类型化定义。使用Types所定义的类型来定义整个消息的数据结构(入参和出参)。
Operation - 对服务中所支持的操作的抽象描述,一般单个Operation描述了一个访问入口的请求/响应消息对(方法)。
PortType - 对于某个访问入口点类型所支持的操作的抽象集合,这些操作可以由一个或多个服务访问点来支持(服务类)。
Binding - 特定服务访问点与具体服务类的绑定(不看内容,看关系)。
Port - 定义为webservice单个服务访问点。
Service- 相关服务访问点的集合。
个人理解:打开wsdl连接,找到wsdl:service标签,然后根据内容一步步往上找:
比如我打开以下连接:http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?WSDL,我们看到<wsdl:service name="MobileCodeWS">
,并且看到标签里面有<wsdl:port name="MobileCodeWSSoap" binding="tns:MobileCodeWSSoap">
的标签,我们需要根据MobileCodeWSSoap找到<wsdl:binding name="MobileCodeWSSoap" type="tns:MobileCodeWSSoap">
的标签,然后根据标签内内容,里面会展示几个方法,找到一个举例,<wsdl:operation name="getMobileCodeInfo">
,找到<wsdl:input message="tns:getMobileCodeInfoHttpGetIn"/>
,在根据这个找到<wsdl:message name="getMobileCodeInfoHttpGetIn"> <wsdl:part name="mobileCode" type="s:string"/> <wsdl:part name="userID" type="s:string"/> </wsdl:message> <wsdl:message name="getMobileCodeInfoHttpGetOut"> <wsdl:part name="Body" element="tns:string"/> </wsdl:message>
,这样就找到了最终的参数的个数和类型,最终就能按照java调用的思想进行处理。
因为无法进行截图,并且画箭头的形式处理,只能按照文字的形式展示查找的过程。