`

SOAP简介

 
阅读更多
一、简介:
    Soap是一个基于xml的轻量级协议,用于在无中心、分布式环境中交换结构化的数据,该协议完全独立于系统平台、软件架构和编程语言,提供了一种开放和统一的方式支持应用间的集成和
互操作。

    对于应用程序开发来说,使程序之间进行因特网通信是很重要目前的应用程序通过使用远程过程调用(RPC)在诸如 DCOM 与 CORBA 等对象之间进行通信,但是 HTTP 不是为此设计的。RPC 会产生兼容性以及安全问题;防火墙和代理服务器通常会阻止此类流量。
    通过 HTTP 在应用程序间通信是更好的方法,因为 HTTP 得到了所有的因特网浏览器及服务器的支持。SOAP 就是被创造出来完成这个任务的。SOAP 提供了一种标准的方法,使得运行在不同的操作系统并使用不同的技术和编程语言的应用程序可以互相进行通信。

二、 SOAP消息结构:

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


   SOAP Header 元素
可选的 SOAP Header 元素可包含有关 SOAP 消息的应用程序专用信息(比如认证、支付等)。

如果 Header 元素被提供,则它必须是 Envelope 元素的第一个子元素。
<?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>
<m:Trans
xmlns:m="http://www.w3school.com.cn/transaction/"
soap:mustUnderstand="1">234</m:Trans>
</soap:Header>

...
...

</soap:Envelope>



SOAP Body 元素
必需的 SOAP Body 元素可包含打算传送到消息最终端点的实际 SOAP 消息。
SOAP Body 元素的直接子元素可以是合格的命名空间。SOAP 在默认的命名空间中

("http://www.w3.org/2001/12/soap-envelope")定义了 Body 元素内部的一个元素。即 SOAP

的 Fault 元素,用于指示错误消息。
<?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>
   <m:GetPrice xmlns:m="http://www.w3school.com.cn/prices">
      <m:Item>Apples</m:Item>
   </m:GetPrice>
</soap:Body>

</soap:Envelope>

三、soap绑定http

HTTP + XML = SOAP
SOAP 请求可能是 HTTP POST 或 HTTP GET 请求。
HTTP POST 请求规定至少两个 HTTP 头:Content-Type 和 Content-Length。
Content-Type
SOAP 的请求和响应的 Content-Type 头可定义消息的 MIME 类型,以及用于请求或响应的 XML 主体的字符编码(可选)。
语法
Content-Type: MIMEType; charset=character-encoding
例子
POST /item HTTP/1.1
Content-Type: application/soap+xml; charset=utf-8


例子
POST /item HTTP/1.1
Content-Type: application/soap+xml; charset=utf-8
Content-Length
SOAP 的请求和响应的 Content-Length 头规定请求或响应主体的字节数。
语法
Content-Length: bytes
例子
POST /item HTTP/1.1
Content-Type: application/soap+xml; charset=utf-8
Content-Length: 250

一个 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>
分享到:
评论

相关推荐

    SOAP 简介SOAP 简介

    SOAP 简介SOAP 简介SOAP 简介SOAP 简介SOAP 简介SOAP 简介SOAP 简介

    SOAP简介很好用的 ,初期可以学

    #### 一、SOAP简介 SOAP(Simple Object Access Protocol)是一种轻量级协议,用于在分布式环境中交换结构化的信息。它主要用于传输XML格式的数据,并且可以运行于多种底层协议之上,最常用的是HTTP。SOAP允许在...

    Microsoft Soap Toolkit3.0.rar

    1. **SOAP简介**: SOAP是Web服务的基础,它定义了一种在分布式环境中交换结构化信息的标准格式。通过HTTP协议进行传输,SOAP消息以XML文档的形式封装,确保了跨平台和跨语言的兼容性。 2. **Microsoft SOAP ...

    C#winform下WebService Soap应用

    WebService Soap 简介 WebService Soap 是一种基于 SOAP 协议的 Web 服务技术,允许不同语言和平台之间的通信和数据交换。它提供了一种松散耦合的接口,使得不同的系统和应用程序能够相互通信和交互。 Winform ...

    WebService工作原理以及SOAP简介.part1.rar

    视频资源 关于 webservice的 soap 的讲解

    PHP的soapDemo

    1. **SOAP简介**: SOAP是一种基于XML的协议,它允许应用程序通过HTTP、SMTP等传输协议交换结构化信息。SOAP消息主要由三部分组成:Header、Body和Envelope。它提供了一种标准的方式来封装请求和响应,使得不同平台...

    soap白皮书 TXT格式

    #### 一、SOAP简介与功能 SOAP(Simple Object Access Protocol)是一种基于XML的信息交换协议,旨在为分布式系统提供一种标准化的远程过程调用(RPC)方式。它通过一系列规范定义了消息结构、编码规则、绑定机制...

    Java使用SOAP获取webservice实例解析

    #### SOAP简介 SOAP(Simple Object Access Protocol)即简单对象访问协议,是一种基于XML的数据交换协议,主要用于不同应用之间通过HTTP协议交换结构化信息。SOAP消息通常由四个主要部分组成:信封(Envelope)、...

    SOAP开发 过程描述

    #### 一、SOAP简介与重要性 简单对象访问协议(Simple Object Access Protocol,简称SOAP)是一种轻量级协议,用于在分布式环境中交换结构化的和固有的可扩展的信息。SOAP规范定义了一种消息格式,该格式允许在不同...

    soap规范web service调用

    #### 一、SOAP简介 **SOAP**(Simple Object Access Protocol)是一种基于XML的标准协议,用于在分布式环境中交换结构化的信息。它定义了一种消息格式,使得不同应用之间可以通过标准的互联网协议(如HTTP)进行通信...

    QtSoap解决方案

    QtSoap简介** QtSoap是基于Qt的开源库,允许开发者在Qt应用中创建和解析SOAP请求和响应。SOAP是一种轻量级、基于XML的协议,用于在分布式环境中交换结构化和类型化的信息。通过QtSoap,开发者可以轻松地与符合SOAP...

    SOAP 经典教程

    #### 一、SOAP简介 **SOAP**(Simple Object Access Protocol,简易对象访问协议)是一种基于XML的通信协议,主要用于不同应用程序之间的数据交换。它支持多种编程语言和平台,并且能够通过互联网进行高效通信。...

    Soap2Android实例

    1. SOAP简介: SOAP是一种基于XML的数据交换协议,用于在分布式环境中交换结构化信息。它允许服务提供者和消费者通过HTTP或其他传输协议进行通信。SOAP消息通常包含三个主要部分:Envelope、Header和Body。 2. ...

    php-soap(web,server)

    一、SOAP简介 SOAP是一种基于XML的轻量级协议,用于交换结构化的和类型化的信息。它允许服务提供者定义一组操作,这些操作可以通过HTTP、SMTP等传输协议被远程调用。SOAP消息通常包含三个主要部分:Header、Body和...

    java SOAP教程

    #### SOAP简介 SOAP,全称为Simple Object Access Protocol,即简单对象访问协议,是一种基于XML的协议,旨在实现不同应用程序之间通过HTTP进行信息交换的能力。SOAP不仅适用于Java,还广泛应用于多种编程语言和...

    soap入门教程

    #### 一、SOAP简介 SOAP(Simple Object Access Protocol)是一种基于XML的简单协议,它主要用于应用程序间的交互,特别是通过HTTP来进行信息交换。SOAP的设计初衷是为了克服传统远程过程调用(RPC)所带来的兼容性...

    一个soap例子,欢迎下载

    1. **SOAP简介**: SOAP是一种简单的基于XML的协议,最初设计用于在分布式环境中交换结构化信息。它允许应用程序通过HTTP或其他传输协议来发送和接收数据,使得不同系统间的交互变得可能。 2. **SOAP消息结构**: ...

    soap客户端工具

    **SOAP简介** SOAP是一种轻量级、基于XML的协议,主要用于在Internet上交换结构化的和类型化的信息。它的主要特点是可扩展性、平台无关性和语言无关性,这使得SOAP成为跨平台、跨语言的Web服务通信标准。SOAP消息...

    用Java实现SOAP的XML文档网络传输及远程过程调用(RPC)

    #### SOAP简介 SOAP(Simple Object Access Protocol,简单对象访问协议)是一种基于XML的协议,它主要用于计算机之间的消息传递,尤其适用于Web服务中作为消息交换的基础。SOAP不仅能够通过HTTP进行传输,还能通过...

Global site tag (gtag.js) - Google Analytics