2

我需要将此属性(xmlns:wsa="http://www.w3.org/2005/08/addressing")添加到soap标头中,如下所示:

<env:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
</env:Header>

我该怎么做,使用 Savon?

4

3 回答 3

2

在我的情况下,我实际上能够对问题进行另一种解决方法,因为我的端点会接受这个:

<env:Header>
  <wsa:Action xmlns:wsa="http://www.w3.org/2005/08/addressing">value</wsa:Action>
</env:Header>

调查原始问题,这是 Savon 创建者的回复:

“嘿,大佬,

查看创建标题和正文标签的代码,现在似乎无法在没有猴子补丁的情况下添加任何属性/命名空间:

https://github.com/rubiii/savon/blob/v0.9.7/lib/savon/soap/xml.rb#L151

如果您仍然需要此功能,请开票,我会看看我能做什么: https ://github.com/rubiii/savon/issues

我目前非常参与采用一种新方法来改进图书馆,所以我不确定我什么时候能够解决你的问题。但是...我拼凑了一个小猴子补丁,在实现此功能之前应该有所帮助:

https://gist.github.com/1698636

干杯,丹尼尔”


于 2012-02-03T10:32:10.273 回答
0

foo = client.request do soap.header['xmlns:wsa'] = 'http://www.w3.org/2005/08/addressing' 结束

于 2012-02-02T20:43:01.987 回答
0

您可以将自己的命名空间添加到请求中,如下所示:

resp = client.request :soap_action do
    soap.namespace['xmlns:wsa'] = 'http://www.w3.org/2005/08/addressing'
end
于 2012-01-26T03:55:42.880 回答