SOAP HTTP和RPC SOAP的案例分析
创始人
2024-07-13 13:41:51
0

对于SOAP协议的内容,这次我们主要针对两方面讲解,一是SOAP HTTP的应用举例,另一方面是对RPC SOAP的相关内容的解析。下面我们就先来看看具体的SOAP HTTP举例。

使用POST的SOAP HTTP

  1. POST /StockQuote HTTP/1.1  
  2. Content-Type: text/xml; charset="utf-8" 
  3. Content-Length: nnnn  
  4. SOAPAction: "http://electrocommerce.org/abc#MyMessage"  
  5. HTTP/1.1 200 OK  
  6. Content-Type: text/xml; charset="utf-8" 
  7. Content-Length: nnnn  

使用扩展框架的SOAP HTTP

  1. M-POST /StockQuote HTTP/1.1  
  2. Man: "http://schemas.xmlsoap.org/soap/envelope/"; ns=NNNN 
  3. Content-Type: text/xml; charset="utf-8" 
  4. Content-Length: nnnn  
  5. NNNN-SOAPAction: "http://electrocommerce.org/abc#MyMessage"  
  6. HTTP/1.1 200 OK  
  7.  
  8. Ext:  
  9. Content-Type: text/xml; charset="utf-8" 
  10. Content-Length: nnnn  

以上就是SOAP HTTP的应用案例,我们就介绍到这里,下面我们来看看在RPC中使用SOAP的相关内容.

设计SOAP的目的之一就是利用XML的扩展性和灵活性来封装和交换RPC调用.这一节定义了远程过程调用和应答的统一表示形式.虽然可以预计到这种表示形式最可能被用于与之前定义的编码方式相结合,但也可能有其它的表示形式.SOAP的encodingstyle属性可以用来表明方法调用和应答都使用这一节所指定的表示方式.在RPC中使用SOAP和SOAP协议绑定是紧密相关的.在使用HTTP作为绑定协议时,一个RPC调用自然地映射到一个HTTP请求,RPC应答同样映射到HTTP应答.但是,在RPC中使用SOAP并不限于绑定HTTP协议.

要进行方法调用,以下的信息是必需的:

目标对象的URI

方法名

方法signature(可选)

方法的参数

头数据(可选)

SOAP依靠协议绑定提供传送URI的机制.例如,对HTTP来说,请求的URI指出了调用的来源 .除了必须是一个合法的URI之外,SOAP对一个地址的格式没有任何限制.

RPC和SOAP体

RPC方法调用和应答都包含在SOAP Body元素中,它们使用如下的表示形式:

一个方法调用用一个结构表示

一个方法调用被看作一个单个的结构,每个[in]和[in/out]参数有一个accessor.结构的名和类型与方法相同.每个[in]和[in/out]参数都被看作一个accessor,这个accessor的名和类型与参数的名和类型相对应.它们的出现顺序和方法中定义的参数顺序相同.

一个方法应答用一个结构表示.

一个方法应答被看作一个单个的结构,返回值和每个[in]和[in/out]参数有一个accessor.***个accessor是返回值,之后是参数accessor,参数accessor的出现顺序和方法中定义的参数顺序相同.每个参数accessor的名称和类型与参数的名称和类型相对应.返回值accessor的名称并不重要.同样,结构的名称也不重要,不过,通常在方法名称的后面加上字符串"Response"作为结构的名称.

方法错误使用SOAP Fault元素表示.如果绑定的协议有额外的规则表示错误,则这些规则也必须要遵从.正如上面所述,方法调用和应答结构可以按照第5节中规则编码,或者用encodingstyle属性指定编码方式.应用程序可以处理缺少参数的请求,但是可能返回一个错误.因为返回结果表示调用成功,错误表示调用失败,所以,在方法应答中同时包含返回结果和错误是错误的.

RPC和SOAP头

在RPC编码中,可能会有与方法请求有关但不是正规的方法signature的附加信息.如果这样,它必须作为SOAP头元素的子元素.使用这种头元素的一个例子是在消息中传递事务ID.由于事务ID不是方法signature的一部分,通常由底层的组件而不是应用程序代码控制,所以没有一种直接的方法在调用中传递这个必要的信息.通过在头中添加一个给定名字的条目,接收方的事务管理器就可以析取这个事务ID,而且不影响远程过程调用的代码.

到这里我们就将SOAP HTTP和RPC中使用SOAP的相关内容介绍完了,希望对大家有所帮助。

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
规避非法攻击 用好路由器远程管... 单位在市区不同位置设立了科技服务点,每一个服务点的员工都通过宽带路由器进行共享上网,和单位网络保持联...
范例解读VB.NET获取环境变... VB.NET编程语言的使用范围非常广泛,可以帮助开发人员处理各种程序中的需求,而且还能对移动设备进行...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...