2
我以这种方式发送请求到服务器WSDL
:SoapClient的:: SomeFunction到SoapClient的:: __的SOAPCall( 'SomeFunction')
$soap = new SoapClient('WSDL_URI');
$soap->SomeFunction(array('Param1' => 123, 'Param2' => 456));
它工作正常,并__getLastRequest
回报:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://tempuri.org/">
<SOAP-ENV:Body>
<ns1:SomeFunction>
<ns1:Param1>123</ns1:Param1>
<ns1:Param2>456</ns1:Param2>
</ns1:SomeFunction>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
但如果我通过__soapCall
呼叫SomeFunction
, WSDL
服务器停机并且不返回正确的响应。
$soap->__soapCall('SomeFunction', array('Param1' => 123, 'Param2' => 456));
__getLastRequest
回报:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://tempuri.org/">
<SOAP-ENV:Body>
<ns1:SomeFunction/>
<param1>123</param1>
<param2>456</param2>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
你看,因为有不同要求,这是行不通的..
如何解决呢?
我不知道你为什么要直接调用'__soapCall',因为你不需要这样做。如果您真的有用例,请向我们展示您的'__soapCall'代码 – ernie 2012-08-17 16:33:58
@ernie:已编辑的问题。 – mrdaliri 2012-08-17 16:42:02