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