我正在开发一个新的Soap Web服务。以前的Web服务用于在遇到错误时返回array('error'=>"Please login first");
。从我读过的内容来看,最好使用SoapFault。
以下行用于调用SoapFault:
throw new SoapFault($faultcode, $faultstring, $faultactor, $faultdetail, $faultname, $headerfault);
我看到Soap有预定义的代码,即:VersionMismatch,MustUnderstand,Client和Server。
请通过回答/更正以下内容来帮助我理解:
答案 0 :(得分:1)
我认为通常不鼓励在一个SO问题中提出多个问题。此外,大部分内容将通过阅读the SOAP spec的第4.4节“SOAP Fault”来解答。
的faultcode
faultcode元素旨在供软件使用以提供 用于识别故障的算法机制。故障代码必须是 存在于SOAP Fault元素中,faultcode值必须是a 第3节中定义的限定名称.SOAP定义一个小集合 SOAP错误代码,包括基本SOAP错误...命名空间标识符 [default] faultcode值为“http://schemas.xmlsoap.org/soap/envelope/”
faultstring
faultstring元素旨在提供人类可读性 故障的解释,不适用于算法 处理
faultactor
“faultactor元素旨在提供有关谁的信息 导致错误发生在消息路径中(参见第2节)。它 类似于SOAP actor属性(参见4.2.2节),而是 指示标题条目的目的地,它表示 故障来源。 faultactor属性的值是URI 确定来源。不充当终极的应用程序 SOAP消息的目的地必须包含faultactor元素 SOAP Fault元素。消息的最终目的地可以使用 faultactor元素明确指出它生成了 错误(另见下面的细节元素)。“
faultdetail是一个字符串,而不是一个数组,应该包含
与Body元素相关的特定于应用程序的错误信息