无法识别CleverElements / Sendcockpit SOAP API参数

时间:2011-10-17 13:15:44

标签: ruby soap savon

我正在尝试使用CleverElements SOAP API,但我无法让它工作。我老实说从未使用过SOAP(但是很多用xml-rpc,休息等),并认为它应该是直截了当的。我正在使用带有savon gem的Ruby。我可以通过SOAP调用任何不需要任何参数的函数,但是对于带参数的函数,SOAP服务不能识别参数。

这是我的要求:

<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsdl="Sendcockpit/API" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ins0="Sendcockpit/API">
  <env:Header>
    <validate>
      <userid>32027</userid>
      <apikey>**************</apikey>
      <version>1.0</version>
      <mode>live</mode>
    </validate>
  </env:Header>
  <env:Body>
    <apiGetListDetails>
      <listID>72472</listID>
    </apiGetListDetails>
  </env:Body>
</env:Envelope>

这是wsdl文件:http://api.sendcockpit.com/server.php?wsdl

我错过了什么(可能是简单的,非常明显的,基本的SOAP)东西?

1 个答案:

答案 0 :(得分:0)

没关系,显然我需要一个包装<ctListRequest>节点。我的印象是savon适用wsdl文件指定的所有内容......

此请求有效:

<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsdl="Sendcockpit/API" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ins0="Sendcockpit/API">
  <env:Header>
    <validate>
      <userid>32027</userid>
      <apikey>***********</apikey>
      <version>1.0</version>
      <mode>live</mode>
    </validate>
  </env:Header>
  <env:Body>
    <apiGetListDetails>
      <ctListRequest>
        <listID>72472</listID>
      </ctListRequest>
    </apiGetListDetails>
  </env:Body>
</env:Envelope>