第三十五章 添加和使用自定义标题元素 - 向 SOAP 消息添加自定义标头元素

第三十五章 添加和使用自定义标题元素 - 向 SOAP 消息添加自定义标头元素

SOAP 消息添加自定义标头元素

要将自定义标头元素添加到 SOAP 消息(来自 Web 服务或 Web 客户端),请在发送 SOAP 消息之前执行以下操作。

  1. 创建标题对象的实例。
  2. 根据需要设置该对象的属性,可选包括 actormustUnderstand 属性。
  3. 将新标头添加到出站标头数组 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-AddressingWS-Security 标头元素,但不自动支持其他标头元素。

要指定 Web 服务或 Web 客户端支持的标题元素,请执行以下操作:

  • 定义类来表示这些标题元素,如定义自定义标题元素中所述。
  • 将标题元素类与 Web 服务或 Web 客户端的标题元素关联。

可以通过以下两种方式之一执行此操作:

  • Web 服务或客户端类添加 XData 块。在此 XData 块中,指定特定标头元素与相应标头元素类之间的关联。

如果服务或客户端类还将类参数 USECLASSNAMESPACES 设置为 1(推荐值),则在生成的 WSDL 中使用此标头信息。

  • Web 服务或 Web 客户端类中,指定 SOAPHEADERS 参数。在此参数中,指定特定标头元素与相应标头元素类之间的关联。

注意:此技术灵活性较差,不会影响生成的 WSDL,现在已被弃用。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容