以下の構造のようなwsdlファイルがあります
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:not="http://notification.ws.api.com/">
<soapenv:Header/>
<soapenv:Body>
<not:getNotificationWS>
<!--Optional:-->
<notification>
<!--Zero or more repetitions:-->
<notificationList>
<!--Optional:-->
<email>?</email>
<!--Optional:-->
<phone>?</phone>
<userId>?</userId>
</notificationList>
</notification>
</not:getNotificationWS>
</soapenv:Body>
</soapenv:Envelope>
上記のwsdlをphpでsoap経由で呼び出しています。以下は、上記のwsdlを呼び出そうとしているsoapcallです。
$response = new SoapClient("http://127.0.0.1:8080/API/ws/TESTWS?wsdl");
try{
$soapstr = $response->__soapCall("getNotificationWS",array("parameters" => array( 'email' => "google@gmail.com",
'phone' => "1111111",
'userId' => "100"
)));
echo print_r($soapstr);
}catch (Exception $e){
echo $e->getMessage();
}
出力やエラーが発生しません。私は最後のリクエストを印刷し、以下のxmlを返します
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://notification.ws.api.easymed.com/">
<SOAP-ENV:Body>
<ns1:getNotificationWS />
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
PHP で SOAP リクエスト内でデータを送信する方法を教えてください。