我们正在开发一种新的 Web 服务,并正在研究在肥皂响应中返回错误的“最佳实践”。
我们正在研究创建一个错误响应对象,每个响应都将包含一个属性。然而,这似乎有点重,想知道是否可以使用 SOAP 标头来携带这些信息?您通常如何使用 SOAP 处理自定义错误?
我们正在开发一种新的 Web 服务,并正在研究在肥皂响应中返回错误的“最佳实践”。
我们正在研究创建一个错误响应对象,每个响应都将包含一个属性。然而,这似乎有点重,想知道是否可以使用 SOAP 标头来携带这些信息?您通常如何使用 SOAP 处理自定义错误?
Soap 已经使用自定义标头来获取错误信息,您需要做的就是在服务器端抛出异常,并在客户端作为SoapException引发异常。
如果您想更好地控制异常消息/信息,可以在服务器端抛出 SoapExceptions。
编辑:有关请求的额外信息,可以使用自定义肥皂标题。这是CodeProject 上的示例文章,它使用自定义soap 标头进行身份验证,但自定义soap 标头可用于其他目的,例如发送不一定是错误条件的额外信息(可以是业务逻辑信息)
SOAPFault 用于保存错误和状态信息,服务器在 HTTP 标头中返回 500 以将其声明为错误。
请参阅 W3.org 的规范
http://www.w3.org/TR/2000/NOTE-SOAP-20000508/#_Toc478383507
您可以设计自己的信息令牌,方法是把它放在soap 标题中,甚至放在返回结果的一个元素中,只要您为第三方清楚地记录它。但是,这不是引发错误的标准方法。
我过去曾使用类似的技术进行复杂的操作。特别是当您需要(多个?)错误描述以及错误代码时。
Soap 标头用于带外信息,不应用于错误消息。此外,soap 标头不应在soap 响应中使用,因为:
是的,我知道一些 WS-* 标准在响应中描述了肥皂标题......
所以,
对严重到没有响应对象的错误使用肥皂故障。将状态标记添加到警告和信息消息的响应中。