我正在使用PHP與SOAP在web服務進行通信。這裏是我的代碼:PHP SoapClient格式錯誤xml
$data = array('name' => 'test', 'age' => 20);
$WDSL = 'http://xxx.xxxxx.xxx/wdsl.ibs?wsdl';
$SOAP = new SoapClient($WDSL, array('trace' => true));
$RESULT = $SOAP->__soapCall('Some_Service', $data);
出於某種原因,XML是錯誤的:
<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:Some_Crap"><SOAP-ENV:Body><ns1:Some_Service/><param1>test</param1><param2>20</param2> ...
爲什麼XML節點名稱是paramX當它應該是變量的名字嗎?我究竟做錯了什麼 ??
感謝
更新: 所以我從web服務中列出的功能,我得到的是:
Some_Service_Response Some_Service(Some_Service $parameters))
我改變了我的電話,因此現在是:
$SOAP->__call('Some_Service', array('Some_Service', $data));
而XML仍然是錯誤的:
<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="
http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="urn:iwaysoftware:ibse:jul2003:HR_Master"><SOAP-ENV:Body><ns1:Some_Service/>
<param1><item><key>SomeKey</key><value>SomeValue</value> ....
我還是得到了<param1><item><key>SomeKey</key><value>SomeValue</value> instead of <Somekey>SomeValue</Somekey>
所以問題是,Web服務不能正常工作,還是在我的最後?
已經是這種情況了 – Eric
@Eric問題'$ data'是一個數組,而不是一個對象。 –
哦對不起,對,你是對的:) – Eric