Komunikuję się z usługą sieciową w SOAP z php. Oto mój kod:PHP SoapClient zniekształcone 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);
Z jakiegoś powodu, XML jest źle:
<?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> ...
Jak to nazwa węzła XML jest paramX gdy powinna być nazwa zmiennej? Co ja robię źle ??
Dzięki
Aktualizacja: Więc mam wymienione funkcje z tym usługa i co pojawia się:
Some_Service_Response Some_Service(Some_Service $parameters))
zmieniłem moje wołanie tak jest teraz:
$SOAP->__call('Some_Service', array('Some_Service', $data));
Kod XML nadal jest nieprawidłowy:
<?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> ....
Nadal dostaję <param1><item><key>SomeKey</key><value>SomeValue</value> instead of <Somekey>SomeValue</Somekey>
Pytanie brzmi, czy usługa sieci Web nie działa poprawnie lub czy jest po mojej stronie?
To już jest przypadek. – Eric
@Eric W pytaniu '$ data' jest tablicą, a nie obiektem. –
Przepraszam, tak, masz rację :) – Eric