2

我正在开发一个新的 Soap Web 服务。array('error'=>"Please login first");以前的 Web 服务用于在遇到错误时返回一个。根据我的阅读,最好使用 SoapFault 代替。

以下行用于调用 SoapFault:

throw new SoapFault($faultcode, $faultstring, $faultactor, $faultdetail, $faultname, $headerfault);

我看到Soap有预定义的代码,即:VersionMismatch、MustUnderstand、Client和Server。

请通过回答/更正以下内容帮助我理解:

  1. 我可以使用自己的自定义故障代码,例如“Auth”或“Error55”。
    1. 有些使用数组(“命名空间”,“错误代码”)。应该使用这个吗?命名空间的值应该是什么?
  2. 我认为故障字符串可以是用户的任何内容,例如“请先登录”。
  3. 故障者的目的是什么?
  4. faultdetail 是一个包含故障额外细节的数组。什么样的细节?
  5. 故障名称的目的是什么?
  6. headerfault 的目的是什么?
4

1 回答 1

1

我相信通常不鼓励在一个 SO 问题中提出多个问题。此外,大部分问题都可以通过阅读SOAP 规范的第 4.4 节“SOAP 错误”来回答。

  1. 故障码

    faultcode 元素旨在供软件使用,以提供用于识别故障的算法机制。faultcode 必须出现在 SOAP Fault 元素中,并且 faultcode 值必须是第 3 节中定义的限定名称。SOAP 定义了一小组 SOAP 错误代码,涵盖基本 SOAP 错误...[default] faultcode 值的命名空间标识符是“ http://schemas.xmlsoap.org/soap/envelope/

  2. 故障串

    faultstring 元素旨在提供人类可读的故障解释,而不是用于算法处理。

  3. 过错者

    “faultactor 元素旨在提供有关谁在消息路径中导致错误发生的信息(请参阅第 2 节)。它类似于 SOAP 参与者属性(请参阅第 4.2.2 节),但不是指示标头的目的地条目,它指示故障的来源。faultactor 属性的值是标识源的 URI。不作为 SOAP 消息最终目的地的应用程序必须在 SOAP Fault 元素中包含 faultactor 元素。最终目的地消息可以使用 faultactor 元素明确指示它产生了故障(另请参阅下面的详细元素)。

  4. faultdetail 是一个字符串,而不是一个数组,并且应该包含

    与 Body 元素相关的应用程序特定错误信息

于 2013-07-25T15:14:15.210 回答