Пытаюсь освоить веб сервис SOAP. Есть сервер, вызываю метод следующим кодом: Код (Text): <?php $p2p['a']=array('name' => 0, 'password' => '123'); $p2p['b']='123'; $p2p['c']='32'; $client=new SoapClient('example.wsdl'); $arr=$client->__getFunctions(); try { $str=$client->__soapCall('testMethod',array($p2p)); echo $str; } catch(SoapFault $e) { echo '<br> asd <br>'.$e->__toString(); } $client->_getLastResponse(); echo 'complete'; ?> Вылазеет ошибка: Код (Text): SoapFault exception: [Client] looks like we got no XML document in script.php:9 Stack trace #0 script.php(9): SoapClient->__soapCall('testMethod', Array) #1 {main} Ругается на __soapCall(). Не совсем понимаю, как загонять параметры в __soapCall(). Что туда надо: ассоциативный массив или XML?
Вот такая ошибка выскакивает при $client->__soapCall('testMethod',array('p2p' => $p2p)): Код (Text): __toString(): SoapFault exception: [Client] looks like we got no XML document in /home/... Stack trace: #0 /home/... : SoapClient->__soapCall('testMethod', Array) #1 {main} __getMessage(): looks like we got no XML document __getTraceAsString(): #0 /home/...: SoapClient->__soapCall('testMethod', Array) #1 {main} И вот такая ошибка при $client->testMethod(array('p2p' => $p2p)): Код (Text): __toString(): SoapFault exception: [Client] SOAP-ERROR: Encoding: object hasn't 'auth' property in /home/... Stack trace: #0 /home/... : SoapClient->__call('testMethod', Array) #1 /home/... : SoapClient->testMethod(Array) #2 {main} __getMessage(): SOAP-ERROR: Encoding: object hasn't 'auth' property __getTraceAsString(): #0 /home/... : SoapClient->__call('testMethod', Array) #1 /home/... : SoapClient->testMethod(Array) #2 {main}
http://www.php.ru/manual/book.soap.html - возможно, поможет. Посмотрите в комментариях (поиск на странице по looks, два комментария).
auth - это одно из переменных ассоциативного массива, забыл исправить. То есть выглядит это так: Код (Text): $p2p['auth']=array('name' => 'bla-bla-bla', 'password' => 'bla-bla-bla'); Но даже если я строчку эту закоменчу, ошибка такая же.