0

我正在尝试使用 CleverElements SOAP API,但我无法让它工作。老实说,我从未使用过 SOAP(但经常使用XML-RPCREST等),并且认为它应该很简单。

我将 Ruby 与savongem 一起使用。我可以通过不需要任何参数的 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)?

4

1 回答 1

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>
于 2011-10-17T14:00:08.453 回答