2012-01-25 25 views
2

我需要添加這個屬性(的xmlns:WSA = 「http://www.w3.org/2005/08/addressing」)的肥皂頭,像這樣:如何向Savon添加屬性到SOAP頭?

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

怎麼辦我這樣做,使用薩翁?

回答

2

實際上,我是能夠使另一個解決方法的問題在我的情況,因爲我的終點會接受這樣的:

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

調查原來的問題,這裏是從薩翁創作者的響應:

「哎馬格納,

看着它創建的標題和正文標記的代碼,它似乎並不 可以添加任何屬性/名稱空間而無需現在猴子修補:

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

歡呼聲, 丹尼爾」


0

你可以自己命名空間添加到這樣的請求:

resp = client.request :soap_action do 
    soap.namespace['xmlns:wsa'] = 'http://www.w3.org/2005/08/addressing' 
end 
+0

我知道,但不會將該屬性添加到問題標題中(這對我的肥皂要求被另一端接受很重要) – Magne

0

富= client.request做 soap.header [ '的xmlns:WSA'] =「HTTP://www.w3。組織/ 2005/08 /尋址」 結束

+0

不,這會產生這樣的結果: ' http://www.w3.org/2005/ 08 /尋址' – Magne