2

我有一个带有位置的 wsdl 文件,我想通过肥皂发送请求值,我正在尝试以下场景。但它没有调用 wsdl 函数。请帮助我如何发送肥皂请求参数。

<xs:complexType name="wsNotification">
 <xs:sequence>
  <xs:element maxOccurs="unbounded" minOccurs="0" name="notificationList" nillable="true" type="tns:notificationsParam"/>
 </xs:sequence>
</xs:complexType>
<xs:complexType name="notificationsParam">
 <xs:sequence>
  <xs:element minOccurs="0" name="email" type="xs:string"/>
  <xs:element minOccurs="0" name="phone" type="xs:string"/>
 </xs:sequence>
</xs:complexType>

下面的代码我在php中使用soap函数调用wsdl

 $client = new SoapClient("http://192.100.1.8:8080/getAPI/ws/WSNotification?wsdl", 
                                array('email'       => "test@gmail.com",
                                       'phone'       => "97122555")
                         );
 echo "Response:\n" . $client->__getLastResponse() . "<br>";

当我调用上述soap函数时,我没有得到wsdl的任何响应。请帮助我如何将参数从php发送到soap。

4

1 回答 1

0

不确定您是否已经对此有答案。但之前我使用nusoap 工具包来实现这一点。

  1. 下载包并将文件放在您的项目文件夹中
  2. 在您的代码中包含该库

    require_once('lib/nusoap.php');

  3. 写你的代码

查看您的 xml 这可以解决问题

$client=new nusoap_client('http://192.100.1.8:8080/getAPI/ws/WSNotification?wsdl', 'wsdl');

$login=array('email'=>'test@gmail.com', 'phone'=>'97122555');
$response= $client->call('notificationsParam', array('parameters' => $login));

if ($client->fault) {
echo '<h2>Fault</h2><pre>';
print_r($response);
echo '</pre>';
} else {
$err = $client->getError();
if ($err) {
    echo '<h2>Error</h2><pre>' . $err . '</pre>';
} else {

print_r($response);

}
}
于 2015-11-19T22:03:59.650 回答