phpを使用してSOAPでWebサービスと通信しています。これが私のコードです:
$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サービスが正しく機能していないのか、それとも私の側にあるのかということです。