来自wsdl的肥皂查询

时间:2013-08-06 08:11:05

标签: php soap wsdl

我正在尝试编写一个PHP脚本来从服务器检索一些数据。 我有wsdl文件,其中包含我需要调用的函数的这些条目:

<xs:element name="getRecoveryPointByID" type="tns:getRecoveryPointByID"/>
<xs:complexType name="getRecoveryPointByID">
<xs:sequence>
    <xs:element minOccurs="0" name="diskSafe" type="tns:diskSafe"/>
    <xs:element minOccurs="0" name="recoveryPointID" type="xs:long"/>
</xs:sequence>
</xs:complexType>

我的问题是我不知道如何正确调用此功能。 我尝试了不同的方式:

getRecoveryPointIDs(array('aecaaba8-c57b-4401-82a7-27775383b04b','1'));

但我真的不明白它是如何运作的。 有人可以帮助我理解如何构建我的查询吗?

我是PHP和肥皂的真正初学者。

提前致谢。

伯努瓦

1 个答案:

答案 0 :(得分:0)

getRecoveryPointByID需要一个对象,而不是一个数组(这就是你用'complextypes'得到的)

像这样的东西,将arrray投射到一个物体(灵感来自这个question):

$soap_client->getRecoveryPointIDs(
   (object)array(
        'diskSafe' => 'aecaaba8-c57b-4401-82a7-27775383b04b',
        'recoveryPointID' => '1'
   ));

这可能需要一些调整。还有其他方法(例如,使用soapvar),但它们是漫长而艰巨的。 SOAP真是太痛苦了......