轻松掌握WebService技术后台—Soap图解法
发布时间:2020-12-17 00:31:47 所属栏目:安全 来源:网络整理
导读:上篇博客中我们已经从宏观上介绍了WebService,以及WebService三大技术支持后台。 ? ? 那我们这篇博客给大家介绍以下Soap以及WSDL的模样。首先从长相外表上了解一个事物,然后通过后期实践不断深入了解。嘻嘻,其实对人的了解何尝又不是呢?学习其实是与生活
上篇博客中我们已经从宏观上介绍了WebService,以及WebService三大技术支持后台。
? ? 那我们这篇博客给大家介绍以下Soap以及WSDL的模样。首先从长相外表上了解一个事物,然后通过后期实践不断深入了解。嘻嘻,其实对人的了解何尝又不是呢?学习其实是与生活本来是想通的,很多学习的道理或方法都是来自生活。好啦,我们不感慨人生了,直奔这篇博客的主题。
??
? ? SOAP是WebService消息传输的格式,我们运行一个程序时,只看到运行的结果是否符合我们的要求,其实背后又是如何运行的呢?那为了捕捉真实的逼真的消息,我们必须利用身边的工具,赤手空拳是无用的。
? ? 上篇博客中,我们介绍了两种调试捕捉消息的工具,其实若是在Eclispe中开发WebService的话,直接通过Eclispe也可以看到消息传递的。
? ??
Eclispe中,打开J2EE视图:
? ? 首先,把服务运行起来:
? ? 然后点击基于webservice的浏览器:
???
? ? 选择wsdl页面:
???
? ws中两个方法:
?
? ? 点击任何一个函数,如添加方法:
? ? 点击source,以下是发送的和接受的消息:
通过我们捕捉soap消息,我们可以看出soap消息的组成部分。
? ? soap消息可以形象地比喻:soap消息是一个信封。信中有信头,信主体。其中写信,当然,可以没有心头了(所谓的称谓),信主题必须要有,否则写这封信就没有意义了。
? ??所以soap消息格式如下:
????
? ? ?
?
那代码格式的soap消息基本结构如下:
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Header> ? ... ? ... </soap:Header> <soap:Body> ? ... ? ... ? <soap:Fault> ??? ... ??? ... ? </soap:Fault> </soap:Body> </soap:Envelope>
???
?????
? ?
其中,soap消息有一些注意的地方:
??
? 通过观察传递的soap消息,我们可以发现,不仅仅是传递的消息,在消息上部还有http协议信息。
? 发送的消息如下:在发送消息中,有发送的目的地Host
,传送的字节数Content-Length
,传送类型Content-type,字符编码charset
POST /ns HTTP/1.1
Content-type: text/xml;charset="utf-8"
Host: 127.0.0.1:8880
Connection: keep-alive Content-Length: 240
? 接受的消息如下:在接受消息中,有接受的状态比如成功200(HTTP/1.1 200 OK
)http协议传输的编码格式Transfer-encoding,传输类型Content-type
HTTP/1.1 200 OK Transfer-encoding: chunked Content-type: text/xml;charset="utf-8"
??
? ?了解了Soap的格式规范,我们在编码时,会方便很多。用C++访问Java发布的webService时,就是使用的编写的Soap客户端,并且在Java服务器端,也是使用Soap形式发布服务的。
? ? 在后期博客中,我们会使用编写Soap形式在进行发布或访问服务,所以现在我们花点时间来了解一下Soap,嘻嘻,现在苦点,以后就会甜点。
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |