我正在使用PHP SoapClient发出请求。 XML结构应如下所示:
<tar:setPackage>
<tar:Package>
<tar:Content>
<tar:Object xsi:type="par:Car">
<par:Descritpion>1</par:Descritpion>
<par:Color>Blue</par:Color>
</tar:Object>
</tar:Content>
<pev:Supplier>
<pev:Id>04</pev:Id>
</pev:Supplier>
</tar:Package>
</tar:setPackage>
但是不幸的是,__getLastRequest()
的输出结果如下:
<tar:setPackage>
<tar:Package>
<tar:Content>
<tar:Object xsi:type="par:Car"/>
</tar:Content>
<pev:Supplier>
<pev:Id>04</pev:Id>
</pev:Supplier>
</tar:Package>
</tar:setPackage>
如您在此处看到的,子元素已被切除。 它必须与xsi类型的“ par:Car”有关,因为如果更改它,子元素将不会被截断。
根据所引用的WSDL文件,“汽车”源自“对象”。
这是我使用PHP Soap Client的方法:
$parm = array();
$parm2 = array();
$parm2[] = new SoapVar("1", XSD_STRING, null, null, "Description", "http://dummy-url.com/car");
$parm[] = new SoapVar($parm2, SOAP_ENC_OBJECT, "Car", "http://dummy-url.com/car", "Object", "http://dummy-url.com/objectdata");
$response = $client->setPackage(new SoapVar($parm, SOAP_ENC_OBJECT));
print_r($client->__getLastRequest());
如何防止子元素被截断?