文章目录
- 第三十五章 添加和使用自定义标题元素 - 向 SOAP 消息添加自定义标头元素
- 向 `SOAP` 消息添加自定义标头元素
- 指定支持的标头元素
 
第三十五章 添加和使用自定义标题元素 - 向 SOAP 消息添加自定义标头元素
向 SOAP 消息添加自定义标头元素
 
要将自定义标头元素添加到 SOAP 消息(来自 Web 服务或 Web 客户端),请在发送 SOAP 消息之前执行以下操作。
- 创建标题对象的实例。
- 根据需要设置该对象的属性,可选包括 actor和mustUnderstand属性。
- 将新标头添加到出站标头数组 HeadersOut属性。此属性是一个具有常用数组接口的数组(例如,SetAt()、Count()和GetAt()方法)。
注意:如果在实用程序方法中执行这些步骤,请注意该方法必须是实例方法,并且必须是可实例化类的成员(例如,而不是抽象类)。
然后在 Web 服务或客户端类中,可以使用一个添加标头元素的实用方法:
Method AddMyHeaderElement(mustUnderstand=0)
{Set h=##class(MyHeaderElement).%New()Set h.Subelement1 = "abc"Set h.Subelement2 = "def"If mustUnderstand {Set h.mustUnderstand=1}Do ..HeadersOut.SetAt(h,"MyHeaderElement")
}
最后,可以从每个想要使用它的 Web 方法中调用此实用方法。例如:
/// Divide arg1 by arg2 and return the result
Method Divide(arg1 As %Numeric, arg2 As %Numeric) As %Numeric [ WebMethod ]
{//main method code here//...do ..AddMyHeaderElement()Quit ans
}
当调用此 Web 方法时,标头将添加到 SOAP 响应中。
指定支持的标头元素
网络服务和客户端自动支持 WS-Addressing 和 WS-Security 标头元素,但不自动支持其他标头元素。
要指定 Web 服务或 Web 客户端支持的标题元素,请执行以下操作:
- 定义类来表示这些标题元素,如定义自定义标题元素中所述。
- 将标题元素类与 Web服务或Web客户端的标题元素关联。
可以通过以下两种方式之一执行此操作:
- 向 Web服务或客户端类添加XData块。在此XData块中,指定特定标头元素与相应标头元素类之间的关联。
如果服务或客户端类还将类参数 USECLASSNAMESPACES 设置为 1(推荐值),则在生成的 WSDL 中使用此标头信息。
- 在 Web服务或Web客户端类中,指定SOAPHEADERS参数。在此参数中,指定特定标头元素与相应标头元素类之间的关联。
注意:此技术灵活性较差,不会影响生成的 WSDL,现在已被弃用。