Ruby Savon设置SOAP头元素

时间:2012-12-04 20:50:57

标签: ruby soap savon

我正在尝试使用Savon将SOAP Key元素添加到SOAP标头中,但我正在打一场失败的战斗。我对Ruby很新,我知道的很少是自学。根据他们的API文档,我需要添加: 此ProductServe函数将返回(SOAP-Header)身份验证元素,并且必须随每个请求一起发送。

参数

Required  Name     Type    Description                              Min Occurs Max Occurs
No        sToken   string  Unique token to identify visitor.        0          1
Yes       sApiKey  string  User specific key to authenticate user.  1          1

http://wiki.affiliatewindow.com/index.php/UserAuthentication

我没有找到任何类似于我想做的事情,这是我尝试的代码:

endpoint = "http://v3.core.com.productserve.com/ProductServeService.wsdl"
client = Savon.client

response = client.request :urn, "getCategory" do
  soap.endpoint = endpoint
  soap.header = {
    "urn:sApiKey" => "xxxx"
  }
end

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

看起来您需要配置您的Savon客户端:

client = Savon::Client.new do
  wsdl.document = endpoint
  wsdl.element_form_default = :unqualified
end

我做了这些更改,其余代码返回了有效的SOAP响应。

来自this question

的无耻辱骂