使用soap4r传递空白XSD :: QName

时间:2009-10-12 03:07:01

标签: ruby soap4r

我已经覆盖了SimpleHandler,使用soap4r传递用户名和密码。问题是我被迫提供一个QName,这导致结果失败,因为它的格式不正确。

soap4r添加的内容是这样的(“ns1”是虚拟值):

<env:Header>
  <n1:ns1 env:mustUnderstand="0"
    xmlns:n1="ns1">
    <n1:Username>someuser</n1:Username>
    <n1:Password>topsecret</n1:Password>
   </n1:ns1>
 </env:Header>

它需要的是:

<env:Header>
  <n1:Username>someuser</n1:Username>
  <n1:Password>topsecret</n1:Password>
</env:Header>

我如何传递包含的名称?

2 个答案:

答案 0 :(得分:0)

Soap4R对覆盖标题非常挑剔。在您的情况下,您需要添加两个“平面”处理程序(一个用于用户名,另一个用于密码),而不是一个用于两者。

答案 1 :(得分:0)

看起来您需要对soap4r进行一些更改:http://dev.ctor.org/soap4r/browser/branches/1_5/lib/soap/header/handler.rb

如果服务不是那么复杂,你可以试试Handsoap http://wiki.github.com/unwire/handsoap/authentication#WS-Security