我正在尝试使用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)东西?
答案 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>