使用Savon手动组装SOAP Header

时间:2011-06-28 15:42:04

标签: ruby-on-rails soap savon

在使用Savon提交SOAP请求时,我一直在处理“soap message header incorrect”错误消息。

我将Savon生成的完全相同的xml复制/粘贴到SOAPUI中,我没有收到该错误,我得到了预期的响应。

所以,既然我已经厌倦了尝试不同的事情,我想在没有Savon帮助的情况下组装我自己的标题。

我想做的是:

soap.header = "<wbs:Session><wbs:SessionId></wbs:SessionId><wbs:SequenceNumber></wbs:SequenceNumber></wbs:Session>"

但是我从Savon那里得到了这个错误:

  

无法将符号转换为字符串

为什么?

提前谢谢。

2 个答案:

答案 0 :(得分:1)

可能是因为你没有设置任何值。

当我在返回时只包含一个自定义对象的哈希时,我收到此错误,因为它试图访问已自动删除的哈希部分。 (它为我删除了哈希的unnesscary层:@)

答案 1 :(得分:0)

我认为标题只接受哈希 - 来自savon.rb页面:

Besides the body element, SOAP requests can also contain a header with
additional information. Savon sees this header as just another Hash following
the same conventions as the SOAP body Hash.

soap.header = { "SecretKey" => "secret" }