SOAP1.2学习笔记

本文详细介绍了SOAP(简单对象访问协议)的基础知识,包括其结构组成、关键属性及处理流程,并探讨了两种编程风格:文档风格与RPC风格。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


 SOAP
,简单对象访问协议,是一种基于XML的,用于在计算机之间交换信息的协议。

SOAP一般包含一个强制性Envelope元素,一个可选的Header元素,一个强制性的Body元素。 

 1.Envelope

这是SOAP的根元素,SOAP的版本一般要在这里声明。以下是1.2名称空间的地址

<SOAP-ENV:Envelope
     xmlns:SOAP-ENV=http://schemas.xmlsoap.org/soap/envelope/

 

2.Header

这个框架主要是为身份验证,事务管理和支付授权提供一个开放的机制。

目前主要有以下几个属性:

role属性:定义了SOAP结点是否需要处理某个Header Block.

          none:表示该Header Block不能被任何SOAP结点处理

          next:应该被每一个结点处理。

          ultimateReceiver:只有最后一个接收者才能处理

MustUnderstand属性:规定SOAP结点是否必须处理某个Header Block.如果不能处理则要求返回一个错误信息。     

 relay属性:规定Header  Block是否应该被继续传递下一个SOAP结点。一般的SOAP结点在处理完一个Header Block后,应该将它从所在的SOAP消息中删除。

SOAP消息的处理过程如下:

  • SOAP结点招收到一条SOAP消息;
  • SOAP结点根据SOAP消息中Header元素的role属性值,确定它可以处理的Header  Block集合;
  • 在这些可以处理的Header Block集合中,SOAP结点进一步确定哪些是必须处理的,也就是mustUnderstand属性值为true的Header Block集合;
  • SOAP结点处理消息。如果该结点不能处理必须处理的消息,则返回一条错误信息,对于可选的Header Block,该结点可以处理也可以忽略;
  • 所有被处理和被忽略的Header Block将被删除,除非其relay属性值为真。该SOAP结点也可以根据需要,在该SOAP消息中插入一些新的Header Block;
  • 转发该SOAP消息给下一个SOAP结点

3.Body

主要用来存储消息的内容,取决于具体的消息。有一个预定义的Falt元素,在服务处理请求出错时,出错消息被包装在Falut元素中,返回给请求方。Fault元素必须包含两个子元素:CodeReason元素,另外三个可选的:Detail,Node,Role元素。Code元素又包括一个必须的Value元素和一个可选的Subcode元素。Value元素的值可以是下面预定义5个可能的错误代码之一:

VersionMismatch:版本不匹配

MustUnderstand:SOAP结点不能处理SOAP消息中某个必须处理的结点

DataEncodingUnknown:SOAP结点不能处理SOAP消息的数据编码

Sender:SOAP结点接收到的SOAP消息格式不正确

Receiver:SOAP结点不能处理该SOAP消息



 

SOAP协议支持两种编程风格,分别为文档风格和RPC方格。

使用文档风格时,SOAP消息中的Body元素包含需要被该服务处理的业务文档(推荐)

使用RPC风格时,Body元素则包含被调用方法的名字及其参数。

 SOAP1.2定义了两种与HTTP协议绑定的方式,分别为HTTP的GETPOST方法

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值