Ruby Savon:无需操作即可调用SOAP Web服务

时间:2016-02-16 14:30:19

标签: ruby soap savon

我需要调用一个不包含任何操作封装的SOAP服务。

通常使用Savon(Ruby 2.3,Savon 2.11),我们有:

client = Savon.client(endpoint: 'http://example.com', namespace: 'http://v1.example.com')
response = client.call(:opName, message_hash)

这将生成一个请求,如:

<env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:wsdl="http://v1.example.com" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
   <env:Body>
       <wsdl:opName>
           ...message content ...
       </wsdl:opName>
   </env:Body>
</env:Envelope>

但我不希望它生成<wsdl:opName>节点。我尝试将nil作为操作传递,但它会将标记生成为<wsdl:>

我想在没有它的情况下生成SOAP请求,例如:

<env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:wsdl="http://v1.example.com" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
   <env:Body>
       ...message content ...
   </env:Body>
</env:Envelope>

0 个答案:

没有答案