• Soap学习进程


    1. 什么是 SOAP?

    • SOAP 指简易对象访问协议
    • SOAP 是一种通信协议
    • SOAP 用于应用程序之间的通信
    • SOAP 是一种用于发送消息的格式
    • SOAP 被设计用来通过因特网进行通信
    • SOAP 独立于平台
    • SOAP 独立于语言
    • SOAP 基于 XML
    • SOAP 很简单并可扩展
    • SOAP 允许您绕过防火墙
    • SOAP 将被作为 W3C 标准来发展

    2.SOAP 构建模块

    一条 SOAP 消息就是一个普通的 XML 文档,包含下列元素:

    • 必需的 Envelope 元素,可把此 XML 文档标识为一条 SOAP 消息
    • 可选的 Header 元素,包含头部信息
    • 必需的 Body 元素,包含所有的调用和响应信息
    • 可选的 Fault 元素,提供有关在处理此消息所发生错误的信息

    3.语法规则

    这里是一些重要的语法规则:

    • SOAP 消息必须用 XML 来编码
    • SOAP 消息必须使用 SOAP Envelope 命名空间
    • SOAP 消息必须使用 SOAP Encoding 命名空间
    • SOAP 消息不能包含 DTD 引用
    • SOAP 消息不能包含 XML 处理指令

    代码示例:

    <?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>

     4.一个 SOAP 实例

    在下面的例子中,一个 GetStockPrice 请求被发送到了服务器。此请求有一个 StockName 参数,而在响应中则会返回一个 Price 参数。此功能的命名空间被定义在此地址中: "http://www.example.org/stock"

    SOAP 请求:

    POST /InStock HTTP/1.1
    Host: www.example.org
    Content-Type: application/soap+xml; charset=utf-8
    Content-Length: nnn
    
    <?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:Body xmlns:m="http://www.example.org/stock">
        <m:GetStockPrice>
          <m:StockName>IBM</m:StockName>
        </m:GetStockPrice>
      </soap:Body>
      
    </soap:Envelope>

    SOAP 响应:

    HTTP/1.1 200 OK
    Content-Type: application/soap+xml; charset=utf-8
    Content-Length: nnn
    
    <?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:Body xmlns:m="http://www.example.org/stock">
        <m:GetStockPriceResponse>
          <m:Price>34.5</m:Price>
        </m:GetStockPriceResponse>
      </soap:Body>
      
    </soap:Envelope>
  • 相关阅读:
    vscode圣诞帽
    阿里java代码检测工具p3c
    elasticsearch 二、elasticsearch-head安装
    elasticsearch 一、环境配置
    针对json的查询--alibaba的开源项目jsonq
    macos下golang 1.9配置
    此请求已被阻止,因为当用在 GET 请求中时,会将敏感信息透漏给第三方网站。若要允许 GET 请求,请将 JsonRequestBehavior 设置为 AllowGet。
    mvc webapi路由重写
    《Java编程的逻辑》终于上市了!
    《Java编程的逻辑》
  • 原文地址:https://www.cnblogs.com/yxcn/p/11387443.html
Copyright © 2020-2023  润新知