Ruby 向Savon(2.2.0)SOAP头添加属性

Ruby 向Savon(2.2.0)SOAP头添加属性,ruby,soap,wsdl,xml-namespaces,savon,Ruby,Soap,Wsdl,Xml Namespaces,Savon,我正在处理一个WSDL服务,该服务似乎只有在头中发送的一个身份验证标记中设置了xmlns属性时才会返回。我使用的是Savon 2.2.0,如果我通过测试工具发送,以下内容将起作用: <AuthenticationHeader xmlns="XXX"> <SessionID>XXX</SessionID> </AuthenticationHeader> XXX 但是我没有找到将属性添加到标记中的方法(因为它在标题中)。关于这一点,有一些较

我正在处理一个WSDL服务,该服务似乎只有在头中发送的一个身份验证标记中设置了
xmlns
属性时才会返回。我使用的是Savon 2.2.0,如果我通过测试工具发送,以下内容将起作用:

 <AuthenticationHeader xmlns="XXX">
  <SessionID>XXX</SessionID>
</AuthenticationHeader>

XXX
但是我没有找到将属性添加到标记中的方法(因为它在标题中)。关于这一点,有一些较老的问题,但似乎没有一个是关于Savon v2的

Savon目前输出:

 <AuthenticationHeader>
  <SessionID>XXX</SessionID>
</AuthenticationHeader>

XXX
不幸的是,它无法进行身份验证


非常感谢您的建议。

请尝试在您的客户端定义中设置
soap\u header
属性,如下所示:

client = Savon.client(
  wsdl: "http://....",
  soap_header: {"AuthenticationHeader xmlns=\"XXX\"" => {"SessionID"=> "XXX"}})
希望它对你有用