通常一个功能强大、技术全面的项目都会用到两种或者以上的开发语言,或者有些时候为了管理的需要,会把项目分成很多小的模块。这就需要了我们能实现在不同进程间通信的功能,SOAP的出现就是为了解决这个问题。
什么是 SOAP?
- SOAP 指简易对象访问协议
- SOAP 是一种通信协议
- SOAP 用于应用程序之间的通信
- SOAP 是一种用于发送消息的格式
- SOAP 被设计用来通过因特网进行通信
- SOAP 独立于平台
- SOAP 独立于语言
- SOAP 基于 XML
- SOAP 很简单并可扩展
一条 SOAP 消息就是一个普通的 XML 文档,包含下列元素:
- 必需的 Envelope 元素,可把此 XML 文档标识为一条 SOAP 消息
- 可选的 Header 元素,包含头部信息
- 必需的 Body 元素,包含所有的调用和响应信息
- 可选的 Fault 元素,提供有关在处理此消息所发生错误的信息
下面是一个简单的soap实例,功能是向服务器请求一个GetStockPrice方法,并传入一个SocketName 参数。
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>
大家可以看出来有点和HTML类似,大家请注意第一行:POST——这不就是HTTP请求吗?大家猜的不错,SOAP就是基于HTTP协议,以XML文档为格式的请求