• SOAP消息的结构


    概述


    介绍SOAP报文的结构,以及获取的方式。

    正文


    1.其实发送的是SOAP消息

    在前面讲述过使用Eclipse的工具Web Services Explorer发送请求。在Actions中填写请求参数,然后点击Go发送请求。其实发送出去的是对应的SOAP消息:
    点击Source链接,可以看到一个预设的SOAP消息框架:
    注:为了突出重点,做了适当的调整;大家在实际操作时看到应该不同。
    在文本框之外的,是SOAP框架的元素;在文本框之内的,是我们自定义的元素。我们可以直接编辑自定义的部分,但是要符合wsdl文档中对于元素的定义。
    假如我们这样编辑:
    我们可以直接点击Go发送请求,或者点击Form,回到一般的参数编辑页面(会有一个确认框,直接确认即可):

    2. 如何获取SOAP消息的结构

    服务端的思考中发布的服务为例,wsdl的地址是http://localhost:6666/service/interpret?wsdl,使用浏览器访问,可以看到:
    先把关注点放在红框中,那里引入了一个Schema,这个Schema定义了SOAP消息中的,自定义部分的结构。使用浏览器打开那个地址,可以看到:
    假设你已经对Schema的知识有了一定的了解,如果不是,可以参考:w3school XML Schema 参考手册
     
    上述的Schema定义了两个结构:
    <tns:interpret xmlns:tns="http://service.chapter1.jws.sand.ljl.cn/">
      <num/>
    </tns:interpret>

    <tns:interpretResponse xmlns:tns="http://service.chapter1.jws.sand.ljl.cn/">
      <chnum/>
    </tns:interpretResponse>
    一个是请求消息的Body结构,一个是响应消息的Body结构。那么如何对号入座呢?不可避免的还是要讲一些wsdl的内容,以下内容仅是自己的理解,不敢保证在严格的领域被认可。
    wsdl包含五个部分,前三个部分依次是types、message、portType,其各作用如下:
    1. types
      定义SOAP消息的结构,例如上文中是通过引入了外部的Schema来定义
    2. message
      对types中的结构进行了封装,每一个结构作为message的一个part
    3. portType
      定义服务操作(operation),以及每一个操作的输入、输出及对应的message。
     
    通过这三个部分,我们就可以完全确定SOAP报文的结构了,对号入座的关键在于解读portType。
    那么我们现在看一下上文的wsdl的这三个部分:
    请尝试自己解读。
    既然wsdl的前三个部分已经可以确定报文的结构,那么后面的两个部分binding、service应该是侧重于协议的描述;也因此,我把前三个部分称为结构相关,把后两个部分称为协议相关,而后者目前还不打算讲。





  • 相关阅读:
    软件新人问题解答(一)
    项目上线流程
    面试题:如何测试登录功能
    软件测试人员在工作中如何运用Linux
    认识接口测试
    刚入职的新人如何快速了解公司业务
    软件测试人员每天的工作日常
    面试题分析(二)如何避免漏测
    [谨记]记线上事故并分析原因
    面试经验分享:遇到不会回答的问题怎么回答才好
  • 原文地址:https://www.cnblogs.com/ywjy/p/5195971.html
Copyright © 2020-2023  润新知