加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Webservice 底层调用的本质

发布时间:2020-12-16 21:55:06 所属栏目:安全 来源:网络整理
导读:http://blog.csdn.net/ggibenben1314/article/details/47610669 一、底层调用的本质 ????说白了就是xml文档的生成、传递、解析的过程。 ????客户端生成xml文件后通过网络传送给服务器,服务器解析xml,获取参数执行方法得到返回值,之后生成xml文件,再传输

http://blog.csdn.net/ggibenben1314/article/details/47610669


一、底层调用的本质

????说白了就是xml文档的生成、传递、解析的过程。

????客户端生成xml文件后通过网络传送给服务器,服务器解析xml,获取参数执行方法得到返回值,之后生成xml文件,再传输给客户端,客户端解析xml后显示数据。

??


二、WSDL文档解析

先看一下整体的分析图:

??


1.接口端

???先看一个整体的文档框架

??


????????文档中含有2n个message(n指的是方法个数),一个webservice操作需要从客户端发消息给服务端,服务端有一个响应消息返回。所以一次web service调用需要两个消息。

?wsdl:portType节点如下:

??


???????里面含有N个operation,而且每个操作包含input和output消息,消息的name和wsdl:message?标签的name属性相对应,其实一次webservice调用不是调用方法,是发送soap消息(xml文档)

???? 对于sayHi的input消息来说:name=“sayHi”,找到wsdl:message的name属性相同的标签,具体如下:

?????

????传入消息是:sayHi元素,从wsdl:type中找到element元素name=“sayHi”,然后找到类型是sayHi的标签,如下:

???

???????所以传入的消息格式是:

[html] view plain copy print ?
  1. //出现次数0-1??
  2. <sayHi>??
  3. ?????<arg0>字符串</arg0>??
  4. </sayHi>??
? ? ? 传出的消息分析同上面,sayHiResponse从schema中查找,如图:

?????


????返回的消息格式如下:

[html] view plain copy print ?
  1. <sayHiResponse>??
  2. ??<return>string</return>??
  3. </sayHiResponse>??
?
2.实现端

先看整体的结构:

?

?????包含了binding和service的标签,service里面包含了webservice的服务地址,如下:

????


???? 标记的部分是web service发布的服务地址

?其中binding部分包含了详细的方法定义和传输风格(document,面向文档),如下:

?


三、总结

?wsdl文档描述了web service的3个方面:

  1. What:“什么”操作
  2. How:应该“怎样”调用
  3. Where:该web?service的服务地址

??? 只要得到web?service的wsdl文档就可以调用web?service。大家可以试着分析下。其实这个文档并不难,不要被它太多的标签吓唬。

0
0

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读