在PHP中,如何将对象参数传递给SOAP方法调用?
我试图发出一个soap请求,我调用的方法接受由以下内容定义的任意数量的对象:在PHP中,如何将对象参数传递给SOAP方法调用?,php,soap,Php,Soap,我试图发出一个soap请求,我调用的方法接受由以下内容定义的任意数量的对象: <xs:complexType name="thing"> <xs:sequence> <xs:element minOccurs="0" name="string1" type="xs:string"/> <xs:element minOccurs="0" name="string2" type="xs:string"/> <xs:el
<xs:complexType name="thing">
<xs:sequence>
<xs:element minOccurs="0" name="string1" type="xs:string"/>
<xs:element minOccurs="0" name="string2" type="xs:string"/>
<xs:element minOccurs="0" name="string3" type="xs:long"/>
</xs:sequence>
</xs:complexType>
更新:
这是所示方法的请求主体:
<SOAP-ENV:Body>
<ns2:method xsi:type="ns1:method">
<string1>something</string1>
<string2>something</string2>
<string3>something</string3>
</ns2:placeHolds>
</SOAP-ENV:Body>
某物
某物
某物
如果我只是传递$obj而不是创建SoapParam,则请求中的主体如下:
<SOAP-ENV:Body>
<ns1:method/>
</SOAP-ENV:Body>
尝试将$obj作为方法参数传递。如果您使用的是WSDL,PHP将自行解决。这似乎也不起作用。我已使用发送的相应请求更新了问题。请尝试将$obj作为方法参数传递。如果您使用的是WSDL,PHP会自行解决。这似乎也不起作用。我已经用发送的相应请求更新了问题。
<SOAP-ENV:Body>
<ns1:method/>
</SOAP-ENV:Body>
$client = new SoapClient('endpoint');
$sequence->string1 = 'something';
$sequence->string2 = 'something';
$sequence->string3 = 'something';
$obj = array();
$obj['sequence'] = $sequence;
$param = new SoapParam(new SoapVar($obj, SOAP_ENC_OBJECT), 'paramName');
$client->__soapCall('method',array($param));