【问题标题】:Ruby w/ Savon: Talking to SOAP service with multiple namespacesRuby w/ Savon:与具有多个命名空间的 SOAP 服务对话
【发布时间】:2014-12-13 04:16:00
【问题描述】:

(注意:我是 SOAP 新手,所以可能会遗漏一些明显的东西)

我当前生成的请求如下所示:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tns="http://service.com/services/base" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <soapenv:Body>
      <tns:someOperation>
         <tns:suppliedParameterInstances>
            <tns:paramName>param_name</tns:paramName>
            <tns:instanceName>?</tns:instanceName>
            <tns:value>Value</tns:value>
         </tns:suppliedParameterInstances>
      </tns:someOperation>
   </soapenv:Body>
</soapenv:Envelope>

以及来自已知工作请求的我的参考 XML:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tns="http://service.com/services/base" xmlns:typ="http://type.service.com/types">
   <soapenv:Header/>                                                                                               
   <soapenv:Body>                                                                                                  
      <tns:someOperation>                                                                        
         <tns:suppliedParameterInstances>                                                                          
            <typ:paramName>param_name</typ:paramName>                                                       
            <typ:instanceName>?</typ:instanceName>                                                                 
            <typ:value>"Value"</typ:value>                                                        
         </tns:suppliedParameterInstances>     
      </tns:someOperation>
   </soapenv:Body>
</soapenv:Envelope>

我确实有一个 WSDL,但我不知道如何阅读它足以判断 Savon 是否应该拿起“tns”/“typ”的东西(它不是我的,所以我不能手上网)。见鬼,我不太了解 SOAP,不知道如何命名这个问题......无论如何!我需要戳 Savon,直到第一个 XML 看起来像第二个。有什么想法或我需要阅读的东西的名称吗?

【问题讨论】:

  • 显示另一个答案对这个问题是正确的,立即使这个问题重复,应该关闭。
  • 我无法“关闭为重复”,因为另一个问题没有可接受的答案。
  • @theTinMan:这不是问题重复的标准。

标签: ruby xml soap savon


【解决方案1】:

找到答案:Replicating XML Request with Savon/Ruby

"GetList 上的命名空间是正确的。你可能需要写的是

soap_client.call(:get_list,
                 :attributes => {'xmlns:b'=>'http://schemas.datacontract.org/'},
                 message: { 'ListRequest' => { 'tns:id' => 1 } }

这不是您问题的确切解决方案,因为我无权访问您的 wsdl 并且无法测试。但你应该得到解决方案的关键。”

【讨论】:

  • 如果你能复制我的回复,我会很高兴给我一个赞成票。
猜你喜欢
  • 1970-01-01
  • 2013-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多