Ruby 使用soap4r传递空白XSD::QName

Ruby 使用soap4r传递空白XSD::QName,ruby,soap4r,Ruby,Soap4r,我已重写SimpleHandler,使用soap4r传递用户名和密码。问题是我被迫给出一个QName,这导致结果失败,因为它的格式不正确 soap4r添加的是这样的东西ns1是虚拟值: <env:Header> <n1:ns1 env:mustUnderstand="0" xmlns:n1="ns1"> <n1:Username>someuser</n1:Username> <n1:Password>tops

我已重写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>

我怎么能不传入一个包含名称呢?

Soap4R对重写头非常挑剔。在您的情况下,您需要添加两个平面处理程序,一个用于用户名,另一个用于密码,而不是同时添加两个处理程序。

看起来您需要对soap4r进行一些更改:

如果服务不是那么复杂的话,你可以试试手拖

wsdl是什么样子的?